-
加载
这一阶段是将类的字节码从外部存储(如磁盘)加载到JVM的内存中。加载时,JVM会根据类的全限定名(包括包名和类名)查找相应的字节码文件(.class
文件),并将其读入内存。 -
链接
链接阶段将加载的类字节码文件与其他类进行整合,确保它们之间的依赖关系被正确处理,主要分为以下三个步骤:- 验证:确保加载的类字节码符合JVM的规范,不会引起安全问题。
- 准备:为类的静态变量分配内存并设置默认值。
- 解析:将类中的符号引用(如方法、字段的名字)转换为直接引用(内存地址或实际对象等)。
-
初始化
初始化阶段是类的静态代码块和静态变量的初始化过程。JVM会执行类中的静态初始化块(static {}
)和静态字段的初始化操作。初始化是唯一会改变类的状态的阶段,它是类加载的最后一步。