类加载器深入解析与阶段分解
类加载
- 在Java代码中,类型的加载、链接与初始化都是在程序运行期间完成的
- 提供了更大的灵活性,增加了更多的可能性
加载:例如从磁盘把class文件加载到jvm
链接:确定类与类之间的关系,字节码的安全校验等
初始化:为静态变量赋值
类加载器深入剖析
- Java虚拟机与生命周期
- 在如下情况下,Java虚拟机将结束生命周期
- 执行了
System.exit()
方法 - 程序正常执行结束
- 程序在运行过程中遇到了异常或者错误而异常终止
- 由于操作系统出现了错误导致Java虚拟机进程退出
- 执行了
类的加载、链接与初始化
-
加载:查找并加载类的二进制数据
-
链接
-
验证:确保被记载类的正确性
-
准备:为类的静态变量赋值,并将其初始化为默认值
-
解析:把类中符号引用转换为直接引用
备注:符号引用与直接引用的理解
-
-
初始化:为类的静态变量赋予正确的初始值