类加载:加载,连接,初始化,使用,卸载
类型的加载(字节码),连接与初始化(对一些静态变量进行赋值)过程都是在程序运行期间完成的,顺序是和所使用的虚拟机有关系。
类加载器深入剖析:
Java虚拟机与程序的生命周期,在如下几种情况下,Java虚拟机将结束生命周期
- 执行了System.exit()方法
- 程序正常执行结束
- 程序在执行过程中遇到了异常或者错误而终止
- 由于操作系统出现错误而导致Java虚拟机进程终止
类的加载、连接与初始化
加载:查找并加载类的二进制数据(把类的class文件加载到内存里)
连接:
- 验证:确保被加载的类的正确性
- 准备:为类的静态变量分配内存,并将其初始化为默认值
- 解析:把类中的符号引用转换为直接引用
class Test{
public static int a = 1;
}
// 先加载Test类
// 准备阶段a赋值为默认的0
// 初始化阶段赋值为正确的1
初始化:为类的静态变量赋予正确的初始值
类的使用与卸载
- 使用:创建对象等操作
- 卸载:从内存中卸载