从菜鸟进阶,你绕不开JVM
JVM,对Java程序员进阶而言,是一个绝对绕不开,也不能绕开的话题。在你Java开发成长进阶蜕变的路上,势必会遇到项目上线中各种OOM、GC等问题,此时JVM的功底就至关重要了。
这份文档,将从一个系统的方向来讲解JVM的系统学习方向,也是个人学习JVM的一份学习笔记整理。多说一句,对于Java工程师的面试,JVM也是必问的一环,因此无论从面试还是实际工作,你都很有必要夯实自己的JVM功底。
这份笔记文档从5个章节来讲解JVM的学习及一些整理,包含了内存区域划分、类加载、垃圾回收和内存分配策略、Java程序优化的注意事项、性能优化等深入讲解细分每个小专题,无论是对JVM还是一无所知的小白还是对JVM和优化有一定经验的朋友,都是份不错的学习资料!
如果需要获取到这个【JVM学习笔记整理】文档的朋友可以在文末下方传送门查看免费获取方式(内容细节比较多,所以把知识点粗略的截图出来了)
JVM入门
- 什么是Java?
- 编程语言
- 计算机[硬件]能够懂的语言
- 操作系统
- So JVM是什么?
- JDK JRE JVM
![d085c65e9da28f6e47ca37bd7bce4a7c.jpeg](https://i-blog.csdnimg.cn/blog_migrate/0da763d89852928f2d741432bd4abbf8.jpeg)
JVM到底该学习什么
- 源码到类文件
- 源码demo
- Class文件
- 装载(Load)
- 链接(Link)
- 初始化(Initialize)
- 类加载器ClassLoader
- 双亲委派
- 类文件到虚拟机(关加载机制)
- 运行时数据区(Run-Time Data Areas)
- Method Area(方法区)
- Heap(堆)
- Java Virtual Machine Stacks(虚拟机栈)
- The pc Register(程序计数器)
- Native Method Stacks(本地方法栈)
- JVM内存模型
- 堆内存溢出
- 方法区内存溢出
- 虚拟机栈
- Garbage Collect(垃圾回收)
- 垃圾收集算法
- 分代收集算法
- 垃圾收集器
![3246bbd9cfafb93913d001abf8693984.jpeg](https://i-blog.csdnimg.cn/blog_migrate/c7239e9fa51de65e3cf326f4b39b6af0.jpeg)
工欲善其事必先利其器
- JVM参数
- 查看参数
- 设置参数的常见方式
- 实践和单位换算
- 常用参数含义
- 常用命令(jps+jinfo+jstat+jstack+jmap)
- 常用工具(jconsole+jvisualvm+arthas)
- 内存分析
- MAT
- GC日志分析
- 执行引擎
- 解释执行
- 即时编译器
- AOT和Graal VM
- 重新认知JVM
![165dc9dfbccdabd70d1f86e28bd2f04f.jpeg](https://i-blog.csdnimg.cn/blog_migrate/46433227ab96037da19d3c48f224d43d.jpeg)
JVM性能优化
- 内存分配
- 内存溢出(OOM)
- 高并发秒杀
- 内存泄露导致内存溢出
- GC
- 什么情况下使用G1
- G1调优最佳实战
- CPU占用率高
- JVM性能优化指南
- 常见问题
![d873ee1f7e8f30ff9c636d84ca0f2724.jpeg](https://i-blog.csdnimg.cn/blog_migrate/117000a42ecc2d92990ed717b787792e.jpeg)
总目录
![cb054d44a3346ee95a9ce84c04456912.jpeg](https://i-blog.csdnimg.cn/blog_migrate/7048a4aa94be8ffcae30ce0ea5024246.jpeg)
现在面试 Java 岗位,无论什么规模的公司,一般面试官面着面着就会问到 JVM 相关的问题,什么线程、内存模型、JVM 运行时内存、垃圾回收与算法、GC 垃圾收集器、JAVA IO/NIO 、JVM 类加载机制等等知识点。
如果答不好,甚至影响薪酬的多少。
所以了解 JVM 则是深入学习 Java 必不可少的一环,也是 Java 开发人员迈向更高水平的一个阶梯,相信以上的这份文档能够帮助你在JVM的学习道路上披荆斩棘!
由于篇幅原因,小编就分享到这里。有需要获取完整版资料的小伙伴,可以点击文末下方传送门即可获得免费领取方式!