Java 类加载过程

1、加载

加载的过程本质上是一个读取二进制数据的过程。可以是文件,网络数据,内存中的数据等,这一阶段是可以自定义的。加载过程中会在堆中初始化一个 class 对象。

2、验证

验证就是验证这堆二进制数据是不是有效的,就是这个 class 数据是否可以载入虚拟机。例如验证文件是否是 0xCAFEBAB 开头,再验证版本号是否被当前 JVM 支持,然后再校验内部的变量等等是否符合规范。

3、准备

准备阶段会在内存中开辟出空供静态变量使用。

4、解析

解析过程就是读取 class 文件的内容然后解析出里面的变量值的等。

5、初始化

解析出来的变量值赋值放到在准备阶段开辟的内存空间中。

6、使用

在堆中寻找到 class ,找到构造方法,执行构造方法便完成一个对象的使用。

7、卸载

卸载一个类不怎么常见,用途的话一般是服务器动态部署等,例如 Tomcat 解除部署一个网站,这时候就要从内存中卸载关联的类,卸载的过程一般包括清除 class 对象,清除静态变量等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值