java虚拟机学习:类加载机制

本文详细阐述了Java类从class文件到内存中的类的生命周期过程,包括加载、链接(验证、准备、解析)和初始化。讲解了类加载器的工作原理,特别是双亲委派机制,以及链接阶段的各个子步骤。此外,还提及了初始化阶段的特性,如单例的延迟初始化。

java字节码文件从class文件到内存中的类,按照先后顺序需要经过加载、链接、初始化三个过程。

1.加载:jvm借助 类加载器 查找字节流并创建类的过程

类加载器除启动类加载器之外,其他的类加载器都是 java.lang.ClassLoader 的子类。这些类加载器需要先由另一个类加载器加载至 Java 虚拟机中,方能执行该类的类加载。
类加载器采用双亲委派机制,即当一个类加载器接收到加载请求时,会先将请求转发给父类加载器,在父类加载器没有找到所请求类的情况下,该类加载器才会尝试去加载。

2.链接:将创建的类合并至jvm中并使之可执行的过程

分为三个阶段:
1. 验证:确保被加载的类符合jvm的约束条件
2. 准备:为被加载类的静态字段分配内存
3. 解析:将符号引用解析为实际引用

3.初始化:为标记为常量值的字段赋值,以及执行 < clinit > 方法的过程

jvm通过加锁机制确保类的初始化仅会被执行一次,这个特性被用来实现单例的延迟初始化。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值