消耗JVM内存

时间:2018-06-27 12:48:28

标签: java memory jvm

我正在测试一个监视应用程序运行状况的应用程序,而决定因素之一是jvm内存。我很好奇如何吃完才能达到测试的门槛?这行得通吗?

ArrayList<Object> list = new ArrayList<Object>();
while(true){
    list.add(new Object());
}

类似于在我不断分配事物的C中仔细检查应用程序内存吗?还是垃圾收集器会来帮我清理所有这些?还是我完全错过了标记?

1 个答案:

答案 0 :(得分:1)

不,您没有错过分数。垃圾收集器将仅收集您不再引用的对象。在您的示例代码中,列表以及它引用的所有对象始终在范围内,因此您最终将填满堆并生成OutOfMemoryException。

正如评论中所述,根据堆的大小,使用纯对象可能不是最好的方法。较大的对象或简单的基元数组将使您的生活更轻松。