💖The Begin💖点点关注,收藏不迷路💖
|
类的加载是一个将.class
文件中的二进制数据读入JVM内存,并使其可用的过程。
1、关键点
-
加载:JVM通过类加载器(ClassLoader)找到并读取
.class
文件到JVM内存。 -
连接:验证类的正确性,准备类变量空间并设置默认值,将符号引用解析为直接引用。
连接阶段又可以细分为三个步骤:
- 验证(Verification):验证加载的类文件是否符合Java语言规范及JVM规范,确保类的正确性。
- 准备(Preparation):为类变量分配内存并设置初始值(注意,这里设置的是默认值,如int类型的变量会被初始化为0,而不是代码中指定的初始值)。
- 解析(Resolution):将类、接口、字段和方法的符号引用转换为直接引用。
-
初始化:执行类构造器
<clinit>()
,完成静态变量的初始化。
2、结果
加载完成后,类的元数据存储在JVM的方法区,同时JVM在堆上创建一个java.lang.Class
对象,封装了类的信息并提供访问接口。
3、类加载器
JVM使用类加载器来加载类,包括引导类加载器、扩展类加载器和系统类加载器,它们之间遵循双亲委派模型。
3、总结
类的加载是Java程序运行的基础,它确保类的数据被正确加载到内存中,并通过Class对象提供访问接口。了解这个过程有助于解决类加载相关问题。
💖The End💖点点关注,收藏不迷路💖
|