JVM 的知识体系庞大,覆盖的知识点多,非系统的学习难以学透。理论毕竟是理论,面对实际问题,我们需要的是解决方案。JVM 的版本更新太快,很多资料较为陈旧,跟不上实际应用的步伐。
导致现在 JVM 知识的掌握程度,在很多面试官眼里是候选人技术深度的一个重要评判标准。
Java 虚拟机结构(Xmind思维导图)

今天分享的这份耗时15天时间整理的JVM学习指南,不管是了解JVM的开发者和刚刚学习的朋友都是一份非常不错的内容,能对大家学习 JVM 能有很大程度上的帮助,也节省了很多自己在网上找资料的时间!
JVM运行时数据区
- 运行时数据区
- 程序计数器(线程独享)
- 虚拟机栈(线程独享)
- 本地方法栈(线程独享)
- Java堆
- 方法区
- 直接内存

GC机制(GC算法、HotSpot的垃圾收集器、内存分配原则、GC相关API)
- 引用计数算法
- 可达性分析算法
- 标记-清除算法
- 复制算法
- 标记-整理算法
- 分代收集算法
- Seri sa1垃圾收集器
- ParHew垃圾收集器
- Paral1el Scavenge收集器
- Seria1l 01收集器
- Parallel 01d收集器
- CMS收集器(重点)

内存溢出与内存泄露
- 堆溢出
- 栈溢出(虚拟机栈和本地方法栈)
- 方法区溢出
- 直接内存溢出
- 内存泄露

类加载机制
- 类加载的时机
- 类加载的过程
- 类的主动引用和被动引用
- 类加载器
- 对象初始化的先后顺序

类文件结构
- Class类文件的结构
- 魔数与Class文件的版本
- 常量池
- 访问标志
- 类索引、父类索引与接口索引集合
- 字段表集合
- 方法表集合
- 属性表集合
- 字节码指令简介字
- 节码与数据类型
- 加载和存储指令
- 运算指令
- 类型转换指令
- 对象创建与访问指令
- 操作数栈管理指令
- 控制转换指令
- 方法调用和返回指令
- 异常处理指令
- 同步指令(重点)

字节码执行引擎
- 运行时栈帧结构
- 方法调用
- 基于栈的字节码解释执行引擎

JVM性能调优
- 参数
- 堆设置
- 栈设置
- 元数据区设置
- 异常设置
- 收集器设置
- 垃圾回收统计信息
- 并行收集器设置
- 并发收集器设置
- 调优原则
- 代大小的调优
- GC策略的调优


目录一览




被折叠的 条评论
为什么被折叠?



