JVM类加载的过程

本文详细介绍了Java虚拟机(JVM)中类加载的过程,包括类的装载、验证、准备、解析和初始化等阶段,并解释了每个阶段的具体操作及意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)类加载JVM内存中图解:

 

(二)(JVM)工作机制:

(1)装载:查找和导入Class(二进制)文件。

(2)链接:把类的二进制数据合并到JRE中;

         ①验证:检查载入Class文件数据的正确性

         ②准备:给类的静态变量static)分配存储空间 。

         ③解析:将符号引用--转成-->直接引用

 (3)初始化:对(static)类的静态变量静态代码块儿执行初始化操作。

 【注意:Java动态拓展运行期动态加载动态链接实现的】比如:如果编写一个使用接口的应用程序,可以等到运行时再指定其实际的实现(多态),解析过程有时候还可以在初始化之后执行;比如:动态绑定(多态)

(三)过程详解:

(1)加载:类的Class文件的二进制数据---读入内存-->放在方法区,然后再创建java.lang.Class对象【用来封装类在方法区内的数据结构】

         加载.class文件方式:

---->对应JVM虚拟机做的事儿

 

(二)验证:

 

(三)准备:为类变量分配内存并设置类变量初始值方法区中进行】:

 

(四)解析:【常量池的】符号引用--->直接引用的过程:

(五)初始化【真正执行Java代码】:为类的静态变量赋正确的初始值。

(1)java中对类变量进行初始化值设定的两种方式:

(2)JVM初始化步骤:

 

(3)初始化阶段执行构造器的过程:

 

(4)初始化的触发条件: 

 

转载于:https://www.cnblogs.com/not-alone/p/8546159.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值