📚 课程介绍
本课程深入讲解JVM(Java虚拟机)的原理、调优、性能监控、并发处理、垃圾回收等核心知识,并通过实战案例帮助学员掌握JVM的调优技巧和面试技巧。
📋 学习前提
1. Java基础(了解Java编程语言的基本语法和面向对象编程) 2. 数据结构与算法基础(理解基本数据结构和算法,如数组、链表、栈、队列、排序算法等)
📖 课程目录
第1章 课程导学与准备工作
1-2 课程介绍及学习指导
第2章 认识JVM规范
2-1 从三种认知角度重识JVM
2-2 JVM规范作用及其核心
2-3 理解JVM规范中的虚拟机结构
2-4 如何学习JVM规范中的指令集
2-5 Class字节码解析:理解ClassFile结构
2-6 阅读Class字节码:常量池
2-7 阅读Class字节码:类定义和属性
2-8 阅读Class字节码:方法和方法调用
2-9 ASM开发:编程模型和核心API
2-10 ASM开发:ClassVisitor开发
2-11 ASM开发:MethodVisitor开发
2-12 ASM开发:实现模拟AOP功能
第3章 类加载、连接和初始化
3-1 类加载和类加载器
3-2 案例:类加载器使用
3-3 双亲委派模型
3-4 案例:自定义ClassLoader
3-5 双亲委派模型说明和代码示例
3-6 类连接和初始化
3-7 案例:类的主动初始化
3-8 案例:类的初始化机制和顺序
第4章 内存分配
4-1 JVM的简化架构和运行时数据区
4-2 Java堆内存模型和分配
4-3 案例:Trace跟踪和Java堆的参数配置
4-4 案例:新生代配置和GC日志格式
4-5 案例:使用MAT进行内存分析
4-6 案例:堆、栈、元空间的参数配置
第5章 字节码执行引擎
5-1 栈帧和局部变量表
5-2 案例:slot是复用的
5-3 案例:操作数栈
5-4 静态分派和动态分派
第6章 垃圾回收
6-1 垃圾回收基础和根搜索算法
6-2 引用分类
6-3 案例:各种引用的实现
6-4 垃圾回收基础【跨代引用、记忆集、写屏障、判断垃圾的步骤、STW】
6-5 垃圾回收算法
6-6 垃圾收集器基础和串行收集器
6-7 并行收集器和Parallel Scavenge收集器
6-8 CMS收集器
6-9 G1收集器
6-10 ZGC收集器、GC性能指标和JVM内存配置原则
第7章 高效并发
7-1 Java内存模型和内存间的交互操作
7-2 内存间的交互操作的规则
7-3 volatile特性
7-4 指令重排原理和规则
7-5 代码示例:指令重排的各种情况分析
7-6 线程安全处理
7-7 锁优化
第8章 性能监控与故障处理工具
8-1 命令行工具
8-2 jconsole
8-3 jmc1
8-4 jmc2
8-5 visualVM
8-6 远程连接
8-7 监控实战1
8-8 监控实战2
第9章 【实战】JVM调优
9-1 JVM调优:调什么、如何调
9-2 调优的目标、调优的策略和调优冷思考
9-3 JVM调优经验、内存泄漏分析
9-4 实战JVM调优:认识待调优的应用
9-5 实战JVM调优:录制JFR并分析结果
9-6 实战JVM调优:按照分析结果调整JVM运行时内存参数
9-7 实战JVM调优:查找内存泄漏点、分析并处理内存泄漏
第10章 面试加油站
10-1 字节码部分【面试精讲】
10-2 内存分配【面试精讲】
10-3 监控工具和实战【面试精讲】
第11章 课程总结
11-1 课程总结
