黑马JVM总结(三十)

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

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

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

通过jps找到进程id:

打开进程工具

可以看到类C在虚拟机里

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

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

(2)类加载-初始化

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

(3)类加载-练习1

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

(4)类加载-练习2

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

相关推荐
Yz98761 小时前
Hadoop里面MapReduce的序列化与Java序列化比较
java·大数据·jvm·hadoop·分布式·mapreduce·big data
pjx9873 小时前
JVM 性能调优与监控
jvm·测试工具
无奇不有 不置可否3 小时前
JVM基础篇学习笔记
java·jvm
pjx9873 小时前
JVM 案例研究与实战经验
jvm
zyt.com3 小时前
线程池总结
jvm
pjx9877 小时前
JVM 语言与生态
jvm
猿究院---王某人8 小时前
Java 内存模型(JMM)
java·开发语言·jvm
爱棋笑谦12 小时前
JVM基础
jvm
懒洋洋大魔王21 小时前
7.Java高级编程 多线程
java·开发语言·jvm
只吹45°风21 小时前
JVM-类加载器的双亲委派模型详解
jvm·类加载器·双亲委派