类的加载分为以下五个步骤:

  1. 加载
  2. 连接
  3. 初始化
  4. 使用
  5. 卸载

1 加载

加载操作会去加载类的二进制数据到内存中,然后在堆中开辟出一个 java.lang.Class 对象

2 连接

连接又包含三个内容:

  1. 验证
  2. 准备
  3. 初始化

2.1 验证

验证时需要验证文件的格式、元数据、字节码、符号引用验证

2.2 准备

为类的静态变量分配内存,并将其初始化为默认值

2.3 解析

将类中的符号引用转换为直接引用

3 初始化

为类的静态变量赋予正确的初始值

4 使用

在 new 关键字调用时,在堆内存中创建相应的对象

5 卸载

执行垃圾回收