Java 内存管理(Memory Management)主要指的是 JVM 对内存的分配、使用、回收与监控机制。它整体上可以分为 内存区域划分(运行时数据区) 和 垃圾回收机制(GC) 两大部分,同时也涉及对象创建、内存溢出与调优等内容。
下面从 整体结构 → 各部分说明 → 关键点总结 来系统说明。
Java 内存管理主要包括:
根据《Java 虚拟机规范》,JVM 内存主要分为以下几部分:
✅ 作用:
用于线程切换后恢复执行位置。
✅ 异常情况:
StackOverflowErrorOutOfMemoryErrorYoung Generation(新生代)
├ Eden
├ Survivor From
└ Survivor To
Old Generation(老年代)
✅ 特点:
| JDK 版本 | 实现 |
|---|---|
| ≤ JDK 7 | PermGen(永久代) |
| ≥ JDK 8 | Metaspace(元空间) |
✅ 异常:
OutOfMemoryError: MetaspaceString::intern)NIO 的 DirectByteBuffer✅ 异常:
OutOfMemoryError: Direct buffer memory是否并发安全:
✅ GC Roots 包括:
| 算法 | 说明 |
|---|---|
| 标记-清除 | 有碎片 |
| 标记-复制 | 新生代 |
| 标记-整理 | 老年代 |
| 分代收集 | 综合使用 |
| 回收器 | 特点 |
|---|---|
| Serial | 单线程 |
| Parallel | 吞吐量优先 |
| CMS | 低延迟 |
| G1 | 区域化、可控停顿 |
| ZGC | 超低延迟(JDK 11+) |
Java heap spaceMetaspaceUnable to create new native threadDirect buffer memory-Xms -Xmx # 堆大小
-XX:MetaspaceSize
-XX:+UseG1GC
-XX:+PrintGCDetails
Java 内存管理 = JVM 内存区域划分 + 对象分配机制 + 垃圾回收机制 + 内存监控与调优
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。