学习 Java 虚拟机,先要掌握其基本结构,了解各部分有什么作用,各部分之间是如何协调工作的。
JVM 的知识体系庞大,覆盖的知识点多,非系统的学习难以学透。理论毕竟是理论,面对实际问题,我们需要的是解决方案。JVM 的版本更新太快,很多资料较为陈旧,跟不上实际应用的步伐。
导致现在 JVM 知识的掌握程度,在很多面试官眼里是候选人技术深度的一个重要评判标准。
Java 虚拟机结构
- 垃圾回收算法
- 运行时区域划分
- 垃圾回收器
- 老年代与年轻代
- 双亲委派机制
- 类加载过程
- Full GC
- 常用命令
- 核心问题分析
- 性能调优
今天分享的这份耗时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策略的调优
目录一览
如何获得这份优质的资料呢?
快速入手通道:(点这里)下载!诚意满满!!!
Java面试精选题、架构实战文档传送门:https://docs.qq.com/doc/DRW1nUkdhZG5zeGVi
整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断!!!
网友评论