类加载

一、加载:
1.通过类的全限定名来获取此类的二级字节流。
2.将字节流所代表的的静态存储结构转化为方法区的运行时的数据结构。
3.在内存生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据访问入口。
二、验证:为了确保class文件字节流中包含信息符合当前虚拟机的要求。
1.文件格式验证:验证字节流是否符合class文件定义的规范。
2.元数据校验:对字节码描述的信息进行语义分析。
3.字节码校验:通过数据流和控制流分析,确定语义是合法的,合乎逻辑。
4.符号引用校验:发生在虚拟机,将符号引用转化为堆中地址直接引用。
三、准备:分配内存并且设置类变量初始值。
四、解析:虚拟机将常量池内的符号引用替换为直接引用过程。
五、初始化:类初始化阶段是类加载的最后一步,准备执行java代码。在准备阶段已经对变量赋过一次系统要求的初始值,而在初始化阶段则是根据程序代码要求复制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值