Java类加载笔记(1)
当一个程序调用某个类,这个类还没有被加载到内存中时,我们的系统会通过以下三个步骤来对该类进行初始化:
1、类的加载
类加载指的是将类的class文件读入内存中,并给它创建一个java.lang.Class对象。类的加载时由类加载器完成的,我们可以通过类加载器来加载以下来源的二进制数据:
--从本地文件系统加载class文件。
--从JAR包中加载class文件。
--从网络中加载class文件。
--将一个Java源文件动态编译,并进行加载。
2、类的连接
当类被加载后,系统就会生成一个Class对象,接着将二进制数据合并到JRE中。类连接又被分为以下几步:
--检验被加载的类是否有正确的内部结构,并且和其他类协调一致。
--为类的静态Field分配内存,并设置默认值。
--将类的二进制数据中的符号引用替换成直接引用。
3、类的初始化
类的初始化主要对静态Filed进行初始化,指定静态初始化可以通过声明静态Field时指定初始化值、可以通过静态初始化块为静态Field指定初始化值。
类的初始化主要按照以下步骤:
--如果这个类还没有被加载和连接,那么先加载后连接这个类。
--在执行第一个步骤时,应该去检查这个类的直接父类是否被初始化,如果没有初始化,就去先初始化它的直接父类(当然在初始化直接父类时,这个直接父类又有直接父类,还要去检查它的直接父类,以此类推)
--如果类中有初始化语句,那么依次去执行这些初始化语句。
转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/42609883 情绪控_
Java类加载笔记(1)相关推荐
- Java系列笔记(1) - Java 类加载与初始化
2019独角兽企业重金招聘Python工程师标准>>> 目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如 ...
- JAVA 类加载机制学习笔记
JAVA 类生命周期 如上图所示,Java类的生命周期如图所示,分别为加载.验证.准备.解析.初始化.使用.卸载.其中验证.准备.解析这三个步骤统称为链接. 加载:JVM根据全限定名来获取一段二进制字 ...
- 视频学习笔记------系统学习让你轻松定义 Java 类加载器
视频地址:https://www.bilibili.com/video/BV1vJ41177cw 简介 类加载就是将磁盘上的class文件加载到内存中.本课程详细分析了从编写一个类到编译.加载的整个过 ...
- Java系列笔记(4) - JVM监控与调优【转】
Java系列笔记(4) - JVM监控与调优[转] 目录 参数设置 收集器搭配 启动内存分配 监控工具和方法 调优方法 调优实例 光说不练假把式,学习Java GC机制的目的是为了实用,也 ...
- Java虚拟机笔记(五):JVM中对象的分代
为什么要分代 为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用, ...
- Java系列笔记(3) - Java 内存区域和GC机制
目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage Collection, ...
- Java读书笔记(8)-单例模式
Java读书笔记(8)-单例模式 今天在阅读<Effective Java 2>第3条时,获知一种使用枚举enum实现单例模式的新方法,然而书上并没有就此展开深入说明,于是上网查阅了一些资 ...
- 【java学习笔记day01】运行第一个程序Helloworld!
java学习笔记day01 2.什么是软件工程师? 3.什么是软件? 4.开发软件需要计算机编程语言,计算机编程语言有很多,例如 c, c++,Java,NET,c#,php... 5.Java软件工 ...
- Alibaba独家首发“Java成长笔记”,差距不止一点点
前言 关于技术人如何成长的问题,一直以来都备受关注,因为程序员职业发展很快,即使是相同起点的人,经过几年的工作或学习,会迅速拉开极大的差距,所以技术人保持学习,提升自己,才能够扛得住不断上赶的后浪,也 ...
最新文章
- SQLite的数据类型总结
- python3解析json数据_Python3高级教程
- mysql 5.7 centos 7_CentOS 7 下 MySQL 5.7 的安装与配置
- DCMTK:存储服务类用户(C-STORE操作)
- asp.net core系列 71 Web架构分层指南
- 批量下载baidu音乐主页的歌曲
- 【蓝桥杯单片机】实战之基础停表
- 人脸方向学习(十七):Face Detection-论文整理-解读
- JAVA之JDBC数据库连接池(超详细介绍)
- Easy AR Unity开发
- 计算机音乐奇迹再现乐谱,天谕手游奇迹再现乐谱代码分享
- #10064 「一本通 3.1 例 1」黑暗城堡(spfa+乘法原理)
- 剑指offe 替换空格
- 证券期货经营机构私募资产管理业务管理办法 2018年10月22日
- java 时间轮_基于时间轮的定时任务
- linux开机启动任务和定时执行任务
- springboot毕设项目美食网站设计与实现62e76(java+VUE+Mybatis+Maven+Mysql)
- 教师资格证面试题库中职计算机,2017年高中信息技术教师资格证面试真题及答案(第四批)...
- 关于Latex中生僻字显示问题
- Mac软件:15个提升办公效率的软件