黑马JVM总结(三十)

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

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

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

通过jps找到进程id:

打开进程工具

可以看到类C在虚拟机里

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

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

(2)类加载-初始化

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

(3)类加载-练习1

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

(4)类加载-练习2

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

相关推荐
2301_809204706 小时前
JavaScript中严格模式use-strict对引擎解析的辅助.txt
jvm·数据库·python
zjy277776 小时前
mysql如何选择合适的索引类型_mysql索引设计实战
jvm·数据库·python
冷小鱼8 小时前
JVM 异常崩溃排查全指南:从 Core Dump 到根因定位
jvm
2301_7820404511 小时前
CSS Flex布局中如何实现导航栏与Logo的左右分布_利用justify-content- space-between
jvm·数据库·python
沐浴露z14 小时前
面试官:静态变量与非静态成员变量的区别?别再死记硬背了!
java·jvm
Chase_______17 小时前
Java 基础语言 ① —— Java 运行机制与开发环境:从 javac 到 JVM 全流程解析
java·jvm·python
xqqxqxxq18 小时前
多线程、进程与JVM 技术笔记
jvm·笔记
cui_ruicheng18 小时前
Linux线程(二):pthread 线程库与线程控制
java·开发语言·jvm
不知名的老吴18 小时前
C++20的jthread使用基础及实例分析
jvm
Devin~Y18 小时前
大厂Java面试实战:Spring Boot/Cloud、Redis/Kafka、JVM调优与Spring AI RAG(内容社区UGC+AIGC客服场景)
java·jvm·spring boot·redis·spring cloud·kafka·mybatis