用于触发Java垃圾收集的简单程序

时间:2012-07-26 20:01:26

标签: java garbage-collection

我正在测试一些JDK,需要多次触发垃圾回收。如何在一个简单的程序中轻松完成这项工作?例子非常有帮助。谢谢。

3 个答案:

答案 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()