深入理解JVM - 阅读笔记之思维导图 - 第 7 章 虚拟机类加载机制
文章目录
章节概览
完整版的内容请点击这里
完整版的内容请点击这里
完整版的内容请点击这里
本章节主要分为 3 个部分:① 类加载时机,② 类加载过程,③ 类加载器
第 7 章节思维导图(更新于2019年4月17日)
笔记
1. 遇到 new
, getstatic
, putstatic
, invokestatic
这 4 条字节码指令时,类没有初始化时,则初始化该类
生成这 4 条指令的最常见的 Java 代码场景是:
- 使用 new 关键字实例化对象的时候
- 读取或设置一个类的静态字段(被 final 修饰,已在编译期把结果放入常量池的静态字段除外)的时候
- 调用一个类的静态方法的时候
2. 使用 java.lang.reflect 包进行 反射
时,类没有初始化,则初始化该类
这里是关于反射的一些知识
Java 反射由浅入深
反射的用途及实现
3. 将常量池内的符号引用替换为直接引用
符号引用:用一组符号描述所引用的目标,只要能无歧义的定位到目标即可
直接引用:用指向目标的指针、相对偏移量或一个能间接定位到目标的句柄