黑马JVM总结(三十)

(1)类加载-连接-解析

new对象,会触发对象的解析和初始化

通过类加载器加载类C,这里只会进行类C的加载并不会导致类C的解析以及初始化,这样加载类C的时候类D也不会解析跟初始化

通过jps找到进程id:

打开进程工具

可以看到类C在虚拟机里

使用new 关键字,这样类D也加载了

解析:也就是将常量池中的符号引用解析为直接引用,符号引用仅仅是符号,并不知道类啊,方法,属性并不知道这些符号在内存的那个位置,经过解析以后,变成了这种直接引用,就能够确切的知道类啊,方法啊在内存中的位置了

(2)类加载-初始化

初始化阶段呢实际上去执行类的构造方法,cinit方法阶段

(3)类加载-练习1

a和b是基本类型,属于静态常量,他们都是在类连接的准备阶段进行赋值的并不会导致类的初始化,所以访问E不会别初始化,c是包装类不会在准别阶段完成赋值,在初始化会完成导致类的初始化

(4)类加载-练习2

只有用到LazyHolder的时候才会触发加载,连接,跟初始化

相关推荐
147API1 天前
Python批量生成蒸馏数据,并发、重试、幂等和断点续跑
开发语言·jvm·python
wuminyu1 天前
JDK21解决虚拟线程IO阻塞原理剖析
java·linux·c语言·jvm·c++
sunywz1 天前
【JVM】(8)JVM调优实战及常量池详解
jvm
wuminyu2 天前
虚拟线程底层ForkJoinPool的工作窃取算法机制
java·linux·c语言·jvm·c++
leisoo80972 天前
股票数据本地化存储实战:JSON、数据库与列式存储的方案对比
jvm·数据库·json
SamChan902 天前
PDF翻译中的并发控制:用Semaphore防止API限流与资源耗尽
java·jvm·pdf
snow@li2 天前
Java:跨平台原理与JDK、JRE、JVM全景深度解析
java·开发语言·jvm
Livia要学习2 天前
Python闭包
开发语言·jvm·python
一韦以航.2 天前
C/C++ 基础深挖:strlen 与 sizeof 全方位对比区别
c语言·jvm·c++·算法·面试·c
行者-全栈开发3 天前
美团后端开发面试题全集(2026最新版):HashMap、JVM、MySQL、Redis高频考点深度解析
jvm·hashmap·java面试题·后端开发·redis缓存·mysql索引·面经汇总