java jvm知识点

java jvm知识点 下面给你一份Java JVM 知识点全景总结面试 实战级覆盖内存结构 → 垃圾回收 → 类加载 → 调优 → 面试高频适合中高级 Java 面试。一、JVM 是什么JVMJava Virtual Machine是 Java 程序的运行环境负责加载字节码并执行。✅ 跨平台✅ 自动内存管理✅ 安全沙箱二、JVM 内存结构必背 ⭐⭐⭐⭐⭐1️⃣ 运行时数据区JVM ├── 线程私有 │ ├── 程序计数器PC │ ├── Java 虚拟机栈 │ └── 本地方法栈 └── 线程共享 ├── 堆Heap ├── 方法区Metaspace └── 运行时常量池2️⃣ 各区域作用区域作用异常程序计数器记录执行位置❌虚拟机栈方法调用栈帧StackOverflowError本地方法栈Native 方法StackOverflowError堆对象实例OutOfMemoryError方法区类信息、常量OutOfMemoryError三、Java 堆GC 核心 ⭐⭐⭐⭐⭐1️⃣ 堆结构分代Heap ├── Young Generation │ ├── Eden │ ├── Survivor From │ └── Survivor To └── Old Generation2️⃣ 对象分配流程new Object() ↓ Eden ↓ Minor GC ↓ Survivor ↓ 年龄 ≥ 15 ↓ Old3️⃣ 为什么分代✅ 弱分代假说✅ 大部分对象朝生夕死✅ GC 效率更高四、垃圾回收GC ⭐⭐⭐⭐⭐1️⃣ 如何判断对象可回收✅ 引用计数法不用循环引用问题✅ 可达性分析JVM 使用GC Roots ├── 栈中引用 ├── 方法区静态变量 ├── 常量 └── JNI 引用2️⃣ 垃圾回收算法算法说明标记-清除碎片多标记-复制无碎片标记-整理慢分代收集✅ 主流3️⃣ 常见 GC 器重点GC特点Serial单线程Parallel Scavenge吞吐量CMS低延迟G1✅ 主流ZGC超低延迟4️⃣ G1 GC必问✅ 区域化Region✅ 可预测停顿✅ 替代 CMS五、类加载机制高频1️⃣ 类加载过程加载 → 验证 → 准备 → 解析 → 初始化2️⃣ 类加载器加载器作用Bootstraprt.jarExtensionextApplicationclasspath3️⃣ 双亲委派模型自定义类加载器 ↓ AppClassLoader ↓ ExtClassLoader ↓ BootstrapClassLoader✅ 防止核心类被篡改六、JVM 调优实战1️⃣ 常用参数-Xms2g-Xmx2g-Xmn512m-XX:UseG1GC-XX:MaxGCPauseMillis2002️⃣ OOM 排查jps jstat -gc jmap -heap jmap -dump MAT 分析3️⃣ 常见 OOM类型原因Java heap space堆太小Metaspace类太多GC overhead limitGC 过度Direct buffer memoryNIO七、JVM 性能监控工具工具作用jps进程jstatGCjinfo参数jmap堆jstack线程八、JVM 面试高频 20 问必刷✅ JVM 内存结构✅ 堆和栈区别堆是 JVM 中最大的内存区域用于存储对象实例是所有线程共享的需要垃圾回收栈是线程私有的用于存储方法调用的栈帧、局部变量和基本数据类型随方法结束而释放不需要 GC。栈中存放的是对象的引用真正的对象存储在堆中✅ 对象创建过程✅ GC Roots 有哪些✅ Minor GC / Major GC✅ G1 工作原理✅ 双亲委派模型✅ 类加载过程✅ OOM 排查思路九、面试标准答案背这段 ✅JVM 内存分为线程私有和线程共享两部分堆是 GC 的主要区域。通过可达性分析判断对象是否可回收采用分代收集算法。G1 是目前主流的垃圾收集器通过 Region 化和可预测停顿提升性能。类加载遵循双亲委派模型防止核心类被篡改。十、一句话总结记住这句✅JVM 内存 GC 类加载 调优