Java 的内存管理机制是指 JVM(Java 虚拟机)在程序运行期间,如何分配、使用、回收内存资源的一套机制。理解它有助于写出更高效、更稳定的 Java 程序,也能帮助排查内存泄漏、OutOfMemoryError 等问题。
下面从整体到细节给你讲清楚。
一句话概括:
Java 程序员负责“申请内存”(new 对象),JVM 负责“回收内存”(GC)
和 C/C++ 不同,Java 不需要手动 free/delete,内存回收由 垃圾回收器(Garbage Collector, GC) 自动完成。
Java 内存管理首先建立在 JVM 内存结构 上(JDK 8 以后):
StackOverflowError(递归过深)OutOfMemoryErrorPerson p = new Person();
步骤:
没有任何引用的对象
❌ 不推荐使用引用计数(循环引用问题)
| 算法 | 特点 |
|---|---|
| 标记-清除 | 慢,有碎片 |
| 复制算法 | 快,浪费空间(新生代) |
| 标记-整理 | 老年代使用 |
| 分代收集 | Java 主流方案 |
| 引用类型 | 回收时机 |
|---|---|
| 强引用 | 不回收 |
| 软引用 | 内存不足时回收 |
| 弱引用 | 下次 GC 回收 |
| 虚引用 | 仅用于通知 |
Java 内存管理机制 = JVM 内存分区 + 自动内存分配 + 垃圾回收(GC)
如果你愿意,我可以:
你想深入哪一块?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。