一尘不染

如何在Java中释放内存?

java

有没有一种类似于C free()函数的释放Java内存的方法?还是将对象设置为null并依靠GC是唯一的选择?


阅读 408

收藏
2020-03-17

共1个答案

一尘不染

Java使用托管内存,因此分配内存的唯一方法是使用new运算符,而释放内存的唯一方法是依靠垃圾回收器。

该内存管理白皮书(PDF)可能有助于解释发生了什么。

你还可以致电System.gc()建议垃圾收集器立即运行。但是,Java Runtime做出最终决定,而不是你的代码。

根据Java文档,

调用gc方法表明,Java虚拟机将花费更多精力来回收未使用的对象,以使它们当前占用的内存可用于快速重用。当控制从方法调用返回时,Java虚拟机将尽最大努力从所有丢弃的对象中回收空间。

2020-03-17