-
加载: 将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入,这个过程需要类加载器参与。
-
连接: 将java类的二进制代码合并到JVM的运行状态之中
-
验证:确保加载的类信息符合JVM规范,没有安全方面的问题
-
准备:在方法区为类变量分配内存空间并设置类中变量的初始值
注意: 如果是final修饰的变量,会在准备阶段就将变量初始化为value值;如果没有final修饰,那么就会在准备阶段赋默认值,在初始化阶段赋值为value。
-
解析:将符号引用替换为直接引用
-
-
初始化: 通过执行类构造器的方法为类进行初始化。方法是在编译阶段由编译器自动收集类中静态语句块和变量的赋值操作组成的。
JVM类加载过程
最新推荐文章于 2022-03-10 15:50:18 发布
本文详细介绍了Java虚拟机的类加载过程,包括加载、连接、验证、准备、解析和初始化六个阶段。重点讨论了类加载器如何将类文件加载到内存,以及在不同阶段对类数据的处理,特别是静态变量的初始化和符号引用的解析。通过理解这些概念,有助于深入掌握Java运行时的内部机制。
摘要由CSDN通过智能技术生成