0

我想通过在 java 用户空间中编写一些错误的代码来了解内存碎片是如何发生的。

请指出一些可以帮助我理解这一点的想法。

在我的理解中,我的想法是,Java 堆碎片只会因为垃圾收集错误而发生,但我的一些朋友却持相反的观点。

我只是想了解编写糟糕的 Java 代码应用程序也会发生 Java 堆碎片。

注意:我正在寻找可以证明这个论点的代码片段。


更新:

实际上,我们在嵌入式设备中拥有的 jvm 是 java 1.3。

谢谢,

4

1 回答 1

0

首先,垃圾收集器是 JVM 特定的。我只知道 OpenJRE 和 Sun JRE。那里使用的垃圾收集器在收集期间压缩堆,因此由于内存管理的设计,不会发生堆碎片。

过去更经常使用的其他内存管理算法使用空闲列表,并且不会在堆中移动内存。对于这样的管理方案,堆碎片可能是一个问题。

于 2014-06-20T15:54:43.707 回答