前言
学习 Java 虚拟机,先要掌握其基本结构,了解各部分有什么作用,各部分之间是如何协调工作的。
JVM 的知识体系庞大,覆盖的知识点多,非系统的学习难以学透。理论毕竟是理论,面对实际问题,我们需要的是解决方案。JVM 的版本更新太快,很多资料较为陈旧,跟不上实际应用的步伐。
导致现在 JVM 知识的掌握程度,在很多面试官眼里是候选人技术深度的一个重要评判标准。
今天分享的这份耗时15天时间整理的JVM学习指南,这份文档不管是了解JVM的开发者和刚刚学习的朋友都是一份非常不错的内容,能对大家学习 JVM 能有很大程度上的帮助,也节省了很多自己在网上找资料的时间(免费获取的方法放在文末了!)
Java 虚拟机结构
- 垃圾回收算法
- 运行时区域划分
- 垃圾回收器
- 老年代与年轻代
- 双亲委派机制
- 类加载过程
- Full GC
- 常用命令
- 核心问题分析
- 性能调优
JVM运行时数据区
- 运行时数据区
- 程序计数器(线程独享)
- 虚拟机栈(线程独享)
- 本地方法栈(线程独享)
- Java堆
- 方法区
- 直接内存
GC机制(GC算法、HotSpot的垃圾收集器、内存分配原则、GC相关API)
- 引用计数算法
- 可达性分析算法
- 标记-清除算法
- 复制算法
- 标记-整理算法
- 分代收集算法
- Seri sa1垃圾收集器
- ParHew垃圾收集器
- Paral1el Scavenge收集器
- Seria1l 01收集器
- Parallel 01d收集器
- CMS收集器(重点)
内存溢出与内存泄露
- 堆溢出
- 栈溢出(虚拟机栈和本地方法栈)
- 方法区溢出
- 直接内存溢出
- 内存泄露
类加载机制
- 类加载的时机
- 类加载的过程
- 类的主动引用和被动引用
- 类加载器
- 对象初始化的先后顺序
类文件结构
- Class类文件的结构魔数与Class文件的版本常量池访问标志类索引、父类索引与接口索引集合字段表集合方法表集合属性表集合
- 字节码指令简介字节码与数据类型加载和存储指令运算指令类型转换指令对象创建与访问指令操作数栈管理指令控制转换指令方法调用和返回指令异常处理指令同步指令(重点)
字节码执行引擎
- 运行时栈帧结构
- 方法调用
- 基于栈的字节码解释执行引擎
JVM性能调优
- 参数堆设置栈设置元数据区设置异常设置收集器设置垃圾回收统计信息并行收集器设置并发收集器设置
- 调优原则代大小的调优GC策略的调优
目录一览
整理不易,觉得有帮助的朋友可以帮忙转发关注支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断!!!
有需要获取完整版资料的小伙伴,可以点击文末下方传送门,即可获得免费领取方式!!!