有没有一种类似于C free()函数的释放Java内存的方法?还是将对象设置为null并依靠GC是唯一的选择?
C free()
Java使用托管内存,因此分配内存的唯一方法是使用new运算符,而释放内存的唯一方法是依靠垃圾回收器。
new
该内存管理白皮书(PDF)可能有助于解释发生了什么。
你还可以致电System.gc()建议垃圾收集器立即运行。但是,Java Runtime做出最终决定,而不是你的代码。
System.gc()
根据Java文档,
调用gc方法表明,Java虚拟机将花费更多精力来回收未使用的对象,以使它们当前占用的内存可用于快速重用。当控制从方法调用返回时,Java虚拟机将尽最大努力从所有丢弃的对象中回收空间。