即使我的程序没有创建任何新对象,为什么堆利用率会随着时间的推移而增加?

时间:2018-06-15 12:26:25

标签: java visualvm jvisualvm

这是一个非常基本的问题。但我没有通过互联网得到任何明确的答案。 我有以下代码

public static void main(String[] args) throws InterruptedException {
    Thread.sleep(1000000);
}

我连接了JVisualVM并开始监控堆使用情况。我可以看到堆使用量随着时间的推移逐渐增加。但是,这里我没有创建任何新对象。这背后的原因是什么?为什么在没有创建任何新对象的情况下堆利用率会增加?

提前致谢。

1 个答案:

答案 0 :(得分:7)

如果你已经与jvisualvm连接,你应该能够看到有很多线程,而不仅仅是主应用程序线程。对象始终创建。例如,探查器本身肯定会创建对象。这是正常的。