虚拟机类加载机制(待整理)

本文详细解析了Java类从加载到卸载的整个生命周期,包括加载、验证、准备、解析和初始化等关键步骤,深入探讨了类加载机制如何确保代码的正确性和安全性。

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

Java可以动态扩展语言特性依赖动态加载和动态连接实现。
整个生命周期:
加载、验证、准备、解析、初始化、使用、卸载

加载

1)通过一个类的全限定名来获取定义此类的二进制字节流;
2)将这个字节流所代表的静态存储结构转化为方法区运行时的数据结构;
3)在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口;

验证

验证是连接阶段的第一步;
1)文件格式验证;
2)元数据验证:对类的元数据信息进行语义校验,保证不存在不符合Java语言规范的元数据信息;
3)字节码验证:判断程序语义是否合法符合逻辑;
4)符号引用验证:将连接第三阶段,解析阶段发生。对类自身以外的信息进行匹配性校验。

准备

为类变量分配内存并设置类变量(被static修饰的变量)初始值阶段,这些变量所使用的内存都将在方法区进行分配。

解析

类或接口的解析;
字段解析;
类方法解析;
接口方法解析;

初始化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值