JVM 调优
JVM(Java虚拟机)是 Java 程序运行的基础。了解 JVM 的工作原理和调优方法,能帮助我们写出更高效的程序。
知识体系
| 主题 | 说明 |
|---|---|
| 垃圾回收算法 | 用大白话讲清楚各种 GC 算法 |
| JVM 启动参数 | JDK 8/17/21 常用参数速查 |
快速入门
什么是 JVM?
你可以把 JVM 想象成一个翻译官 + 管家:
- 翻译官:把你写的 Java 代码翻译成计算机能理解的指令
- 管家:帮你管理内存,自动清理不用的垃圾
内存结构一图流
┌─────────────────────────────────────────────────────────┐
│ JVM 内存 │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ 堆(Heap) │ │
│ │ ┌───────────────┐ ┌───────────────────────┐ │ │
│ │ │ 新生代 │ │ 老年代 │ │ │
│ │ │ (年轻人住的) │ │ (老人住的) │ │ │
│ │ │ │ │ │ │ │
│ │ │ Eden + S0 + S1│ │ Old Generation │ │ │
│ │ └───────────────┘ └───────────────────────┘ │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────┐ ┌───────────────┐ │
│ │ 方法区 │ │ 栈 │ │ 程序计数器 │ │
│ │ (放类信息) │ │(临时变量)│ │ (记录位置) │ │
│ └──────────────┘ └──────────┘ └───────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘为什么要学 JVM?
| 场景 | 你能做什么 |
|---|---|
| 程序越来越慢 | 分析 GC 日志,调整内存参数 |
| 内存溢出 OOM | 定位是哪里在疯狂创建对象 |
| CPU 飙高 | 找到是不是 GC 太频繁了 |
| 面试被问 | 不慌,直接开讲 |