我正在测试一些JDK,需要多次触发垃圾回收。如何在一个简单的程序中轻松完成这项工作?例子非常有帮助。谢谢。
答案 0 :(得分:3)
有关垃圾收集的详细讨论,请参阅here。您可以请求它运行(如前面的答案所述),但这不是保证,所以你不应该对这个电话假设太多。您最好的选择是多次创建和销毁新对象。要允许它们被销毁,请在块中创建它们并再次关闭它们。也许是这样的:
for(int i = 0; i < MAX; ++i) {
{
Integer i = new Integer(0);
}
}
您可以在外部监控内存使用吗?
答案 1 :(得分:2)
您可以使用System.gc()
请求垃圾收集
这个SO discussion可能会在您的问题中感兴趣
答案 2 :(得分:1)
从Oracle docs使用System.gc()
public static void gc()
运行垃圾收集器。调用gc方法表明了 Java虚拟机花费精力回收未使用的对象 为了使他们目前占用的内存可以快速使用 重用。当控制从方法调用返回时,Java Virtual 机器已经尽最大努力从所有废弃物中回收空间 对象。
调用System.gc()实际上等同于调用:
调用Runtime.getRuntime()。GC()