类加载的几个步骤

JVM将类加载到内存中,这一过程包括加载、验证、准备、解析和初始化五个步骤。加载时读取class字节码;验证确保字节码合法,如版本兼容性;准备阶段在方法区创建Class对象并为静态变量赋默认值;解析将符号引用转换为直接引用;初始化执行<clinit>方法,完成类的初始化。
摘要由CSDN通过智能技术生成

JVM将类加载到内存中,对类初始化的过程叫做类加载

类加载分为5步:

  1. 加载:load:

将类型的class字节码数据读入内存

  1. 验证:校验合法性等

校验是否是java语言(所有用java语言编写的字节码文件开头都是ca fe ba be)
校验版本号(如果是这个字节码文件是用1.8编译器编译的,那么用1.6的JDK是没法加载运行的,可以向下兼容,不可以向上兼容)
以及等等.........

  1. 准备:在方法区准备对应的内存,创建Class对象(里面存的是类的信息,例如类的属性,方法等等),为类变量(静态变量)赋默认值,为静态常量赋初始值。

  1. 解析:把字节码中的符号引用替换为对应的直接地址引用

  1. 初始化:initialize(类初始化)即执行<clinit>类初始化方法,大多数情况下,类的加载就完成了类的初始化,有些情况下,会延迟类的初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值