news 2026/5/17 2:15:26

java jvm知识点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java jvm知识点

下面给你一份Java JVM 知识点全景总结(面试 + 实战级)
覆盖内存结构 → 垃圾回收 → 类加载 → 调优 → 面试高频,适合中高级 Java 面试


一、JVM 是什么?

JVM(Java 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 Generation

2️⃣ 对象分配流程

new Object() ↓ Eden ↓ Minor GC ↓ Survivor ↓ 年龄 ≥ 15 ↓ Old

3️⃣ 为什么分代?

✅ 弱分代假说
✅ 大部分对象朝生夕死
✅ 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.jar
Extensionext
Applicationclasspath

3️⃣ 双亲委派模型

自定义类加载器 ↓ AppClassLoader ↓ ExtClassLoader ↓ BootstrapClassLoader

✅ 防止核心类被篡改


六、JVM 调优(实战)

1️⃣ 常用参数

-Xms2g-Xmx2g-Xmn512m-XX:+UseG1GC-XX:MaxGCPauseMillis=200

2️⃣ OOM 排查

jps jstat -gc jmap -heap jmap -dump MAT 分析

3️⃣ 常见 OOM

类型原因
Java heap space堆太小
Metaspace类太多
GC overhead limitGC 过度
Direct buffer memoryNIO

七、JVM 性能监控工具

工具作用
jps进程
jstatGC
jinfo参数
jmap
jstack线程

八、JVM 面试高频 20 问(必刷)

✅ JVM 内存结构?
✅ 堆和栈区别?
堆是 JVM 中最大的内存区域,用于存储对象实例,是所有线程共享的,需要垃圾回收;
栈是线程私有的,用于存储方法调用的栈帧、局部变量和基本数据类型,随方法结束而释放,不需要 GC。
栈中存放的是对象的引用,真正的对象存储在堆中
✅ 对象创建过程?
✅ GC Roots 有哪些?
✅ Minor GC / Major GC?
✅ G1 工作原理?
✅ 双亲委派模型?
✅ 类加载过程?
✅ OOM 排查思路?


九、面试标准答案(背这段 ✅)

JVM 内存分为线程私有和线程共享两部分,堆是 GC 的主要区域。
通过可达性分析判断对象是否可回收,采用分代收集算法。
G1 是目前主流的垃圾收集器,通过 Region 化和可预测停顿提升性能。
类加载遵循双亲委派模型,防止核心类被篡改。


十、一句话总结(记住这句)

JVM = 内存 + GC + 类加载 + 调优


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/17 2:13:12

CoAP 协议详解

一、协议简介全称:Constrained Application Protocol 受限应用协议专为资源极度受限的物联网设备设计,极简轻量、超低功耗,是窄带物联网主流协议。二、底层基础底层承载:UDP 协议无长连接、开销极小、报文精简默认端口&#xff1a…

作者头像 李华
网站建设 2026/5/17 2:08:03

RTD2660H/RTD2668显示驱动板:从硬件解析到OSD菜单调校全攻略

1. 项目概述:从信号到像素的桥梁如果你拆开过一台显示器或者自己动手组装过一块屏幕,大概率会看到一块比巴掌大不了多少的绿色电路板,上面密密麻麻地焊接着各种接口和芯片。这块板子,就是我们今天要聊的主角——显示驱动板。它远不…

作者头像 李华
网站建设 2026/5/17 2:07:56

基于Feather M4与电子墨水屏的极低功耗温湿度监控器设计与实现

1. 项目概述与核心价值如果你也和我一样,喜欢在家里囤点干货、茶叶,或者是个电子元件爱好者,总担心储物罐里的环境温湿度不合适,那这个项目你一定会感兴趣。我最近动手做了一个基于Feather M4和电子墨水屏的温湿度监控器&#xff…

作者头像 李华
网站建设 2026/5/17 2:06:43

规则引擎设计原理与实战:从RETE算法到生产级应用

1. 项目概述:一个为现代应用量身定制的规则引擎如果你正在开发一个需要处理复杂业务逻辑、决策流程或者动态权限控制的应用,比如一个电商促销系统、一个智能客服机器人,或者一个需要精细风控的金融产品,那么你大概率会遇到一个共同…

作者头像 李华
网站建设 2026/5/17 2:04:46

K-Means 聚类算法背后的数学原理

原文:towardsdatascience.com/the-math-and-code-behind-k-means-clustering-795582423666 https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/7a15ce1ee914788a5034a92c18a9b424.png 由 DALL-E 生成的图像 K-Means 聚类算法在机…

作者头像 李华