类加载的过程

类加载的过程通常可以分为以下几个阶段:

1.加载(Loading):

类加载器首先通过类的全限定名(Fully Qualified Name)查找类文件,并将类文件加载到内存中。
加载阶段不仅仅是简单地将字节码读入内存,还包括对字节码进行一些校验,以确保其符合 Java 虚拟机规范。


2.链接(Linking):

链接阶段分为三个子阶段:验证(Verification)、准备(Preparation)和解析(Resolution)。
验证阶段:对加载的字节码进行验证,以确保其符合 Java 虚拟机规范,防止恶意代码的执行。
准备阶段:为类的静态变量分配内存,并设置默认初始值。
解析阶段:将类、方法、字段等符号引用解析为直接引用,这个阶段可能会在某些情况下被延迟到运行时进行。


3.初始化(Initialization):

在这个阶段,类的静态变量会被初始化为指定的值,静态初始化块会被执行。
初始化阶段是类加载过程中的最后一个阶段,它标志着类的加载完成,并且类已经可以被使用。

需要注意的是,类加载过程中的链接和初始化阶段并不一定会立即执行,而是在类被使用到的时候才会触发。此外,类加载过程是线程安全的,JVM 会确保类加载过程的原子性和一致性,避免多个线程同时加载同一个类造成的冲突。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值