切换深色模式
JVM:堆与垃圾回收
示例笔记
这篇文章用于验证知识库的目录、代码块和本地图片。你可以直接修改它,或用自己的笔记替换。
要解决的问题
对象使用结束后,内存如何重新利用?垃圾回收器判断对象是否仍然可达,并回收符合条件的对象所占用的空间。
一个常见的分代模型
下面是帮助理解的示意图。具体布局由垃圾回收器决定,并非所有 JVM 回收器都使用相同的连续分区。
用代码提出问题
java
byte[] buffer = new byte[1024 * 1024];
buffer = null;把变量设为 null 并不代表对象立即被回收。还需要考虑其他引用是否存在,以及回收器何时执行回收。
继续验证
记录使用的 JDK 版本和回收器,再观察 GC 日志。不要把某一次实验结果直接推广到所有运行环境。
图片文件在哪里
这张图与文章放在一起,Markdown 使用 ./images/heap.svg 引用。PNG、JPEG 和 WebP 图片也使用相同的写法。