JVM 概览
半塘 2024/2/21 Java虚拟机【JVM】
Java虚拟机【JVM】有很多版本,如未特别指明,则指的是JDK8的HotSpot。
JVM结构图
红色字体标记部分为后续主要详解内容。
# 1、JVM基础
# 1.1、类字节码
- 类文件结构
- 常量池
- 访问标志
- 类和接口索引
- 字段表属性
- 方法表属性
- 属性表属性
- 理解字节码
- javac、javap
- 其它语言:比如kotlin
# 1.2、类加载机制
- 类生命周期
- 加载
- 连接:验证、准备、解析
- 初始化
- 使用
- 卸载
- 类加载机制
- 类加载器:启动类加载器、扩展类加载器、应用程序类加载器、自定义类加载器
- 寻找类加载器
- 类的加载方式
- JVM类加载机制:全盘负责、父类委托、缓存机制、双亲委派机制
# 1.3、JVM内存结构
- 程序计数器
- Java虚拟机栈
- 本地方法栈
- 方法区
- 堆
- 新生代:Eden(伊甸园区)、From Survivor(幸存1区)、To Survivor(幸存2区)
- 老年代
- 元空间区(物理内存)
# 1.4、Java内存模型【JMM】
- JMM内存模型结构
- JMM介绍
- 并发问题
- 重排序
- 顺序一致性
# 2、GC垃圾回收
# 2.1、GC垃圾回收基础
- 对象回收条件
- 引用计数算法
- 可达性分析算法
- 方法区的回收
- finalize()
- 引用类型
- 强引用
- 软引用
- 弱引用
- 虚引用
- 垃圾回收算法
- 标记-清除
- 标记-整理
- 复制
- 分代收集
- 垃圾收集器
- Serial收集器
- ParNew收集器
- Parallel Scavenge 收集器
- Serial Old 收集器
- Parallel Old 收集器
- CMS收集器
- G1收集器
- 内存分配与回收策略
- Minor GC 和 Full GC
- 内存分配策略
- Full GC的触发条件