Skip to content

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 太频繁了
面试被问不慌,直接开讲