想要深入理解 Java,探秘 Java 跨平台的奥秘,一定要了解 Java 底层的虚拟机技术。
了解虚拟机、掌握虚拟机性能调优方法,有助于你写出更高性能、资源占用更小的优质程序。
在学习 JVM 的过程中,也能学到很多精妙的设计,开拓思路。
#知识
- JVM 内存结构
- JVM 生命周期
- 主流虚拟机
- Java 代码执行流程
- 类加载
- 类加载器
- 类加载过程
- 双亲委派机制
- 垃圾回收
- 垃圾回收器
- 垃圾回收策略
- 垃圾回收算法
- StopTheWorld
- 字节码
- 内存分配和回收
- JVM 性能调优
- 性能分析方法
- 常用工具
- 参数设置
- Java 探针
- 线上故障分析
#学习建议
JVM 的知识略显枯燥,建议先看视频,有实操的地方一定要实操!自己多去分析。
第一遍不理解没有关系,可以再看书来巩固,想要真正学好,《深入理解 Java 虚拟机(第三版)》一定要读。
如果只是为了通过面试可以直接看更精简的视频,比如狂神的。
资源
- 视频
- ⭐ 尚硅谷宋红康 - JVM 全套教程详解:https://www.bilibili.com/video/BV1PJ411n7xZ (opens new window)(讲得相当全面!附有实操)
- 【狂神说Java】JVM快速入门篇:https://www.bilibili.com/video/BV1iJ411d7jS (opens new window)(讲得有点浅,但都是面试重点,时间紧的小伙伴可以直接看这个)
- 书籍
- ⭐《深入理解 Java 虚拟机(第三版)》(有理论有实践,内容丰富,不可多得的 JVM 学习神书,就是有点废头发)
- 项目
- ⭐ Java 虚拟机底层原理知识总结:https://github.com/doocs/jvm(opens new window)
- 实战
- 工具
- Arthas 开源 Java 诊断工具:https://github.com/alibaba/arthas(opens new window)