黑马JVM总结(三十)

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

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

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

通过jps找到进程id:

打开进程工具

可以看到类C在虚拟机里

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

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

(2)类加载-初始化

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

(3)类加载-练习1

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

(4)类加载-练习2

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

相关推荐
wuminyu5 小时前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
.小小陈.5 小时前
Linux 线程概念与控制:从底层原理到实战应用
linux·运维·jvm
light blue bird8 小时前
工序路径工站物料 BOM 协同组件
jvm
zhaoyong22211 小时前
MySQL 存储过程中字符集与排序规则不匹配导致查询性能下降的解决方案
jvm·数据库·python
sinat_3834373611 小时前
golang如何从Python转型Go开发_golang从Python转型Go开发攻略
jvm·数据库·python
FQNmxDG4S11 小时前
JVM内存模型详解:堆、栈、方法区与垃圾回收
java·jvm·算法
2301_8125396714 小时前
Golang怎么实现网页爬虫抓取数据_Golang如何用colly框架快速构建爬虫采集程序【教程】
jvm·数据库·python
雪碧聊技术15 小时前
线程运行原理
jvm
light blue bird15 小时前
MES/ERP 工序 BOM 协同多节点工站组件
java·jvm·oracle
雪碧聊技术17 小时前
JVM:字节码文件的组成
jvm