- 当程序主动使用某个类的时候,如果该类还没有被加载到内存中,系统会通过加载、连接、初始化三个步骤来对该类进行初始化,如果没有意外,JVM 将会连续完成这三个步骤,所以有时也会将这三个步骤称为类加载。
- 类的加载分为三个阶段:
- ① 加载(load):就是将 *.class 字节码数据读取到内存中。
- ② 连接(link):
- 验证:检验合法性等。
- 准备:准备对应的内存(方法区)、创建 Class 对象、为类变量赋默认值、为静态常量赋初始化值。
- 解析:将字节码中的符号引用替换为对应的直接地址引用。
- ③ 初始化(initialize):类初始化,执行 类初始化方法,大多数情况下,类的加载就完成了类的初始化,有些情况下,会延迟类的初始化。