Java 类加载过程

1、加载

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

2、验证

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

3、准备

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

4、解析

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

5、初始化

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

6、使用

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

7、卸载

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值