跨平台原理
JVM发展史
HotSpot架构
与OS关系
程序计数器
虚拟机栈
本地方法栈
堆/方法区
运行时常量池
PermGen vs Metaspace
元空间参数
常量池
字符串常量池
什么是GC
触发条件
Stop-The-World
存活判定算法
强/软/弱/虚引用
ReferenceQueue
软引用缓存
标记-清除
标记-复制
标记-整理
分代/三色标记
Serial/ParNew
Parallel Scavenge
Serial/Parallel Old
CMS
G1 (Region/RSet)
ZGC (染色指针)
Shenandoah
日志格式
文件配置
GCViewer
GCEasy
标准/-X/-XX
调优组合
PrintFlagsFinal
解释/编译执行
C1/C2编译器
分层编译
热点探测
抽象结构
happens-before
内存屏障
volatile语义
偏向/轻量/重量锁
自旋锁
锁消除/粗化
synchronized vs ReentrantLock
jps/jstat/jinfo
jmap/jhat/jstack
jcmd/jhsdb
JConsole
VisualVM
JMC
Arthas
CPU飙升排查
线程死锁
频繁GC导致CPU高
JIT编译线程
文件IO优化
BIO/NIO/AIO
零拷贝(sendfile)
Netty调优
连接池(HikariCP)
SQL执行计划
索引优化
读写分离/分库分表
MyBatis缓存
Tomcat调优
Spring Boot调优
Nginx反向代理
String拼接
集合选择
Stream vs 循环
反射/MethodHandle
Full GC优化
Metaspace OOM
堆外内存泄漏
CPU 100% / 线程池耗尽
GraalVM
Project Loom
Valhalla / Panama