学习是一种基础性的能力。然而,“吾生也有涯,而知也无涯。”,如果学习不注意方法,则会“以有涯随无涯,殆矣”。
学习就像吃饭睡觉一样,是人的一种本能,人人都有学习的能力。我们在刚出生的时候,什么也不知道,是一张真正的白纸,我们靠学习的本能,学会了走路、说话、穿衣服…后来,我们上学了,老师把书本上的知识一点一点灌输到我们的脑子里,我们掌握的知识越来越多,与此同时,我们学习能力却好像越来越差了,习惯了被别人喂饱,似乎忘记了怎么来喂自己了。
学习本来只是一种本能,算不上什么能力,然而,经过二十多年的不断学习,学习反而成为了一种真正的能力,因为我们慢慢失去了它,它就更显得珍贵。
作为一个程序员,不断的学习更是重要,不学新的知识就迟早会被淘汰掉
学习 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策略的调优
目录一览
整理不易,觉得有帮助的朋友可以帮忙转发关注支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断!!!