需要澄清java垃圾收集复制收集器

时间:2012-01-04 05:52:27

标签: java garbage-collection

这只是为了澄清我对java垃圾收集复制收集器的理解。

与=>

的逻辑是否相同

我正在将一串葡萄从一个盒子移到另一个盒子里,所有不在一堆的葡萄都留在盒子里,有资格进行垃圾收集。

有些人可能会觉得我的理解很愚蠢,因为我想在此澄清一点,就是检查参考所花费的时间。

2 个答案:

答案 0 :(得分:2)

葡萄的例子很好。

当GC工作效率最高时,它假设只需要将一小部分数据复制到下一个空间。如果要保留大部分数据,则空间(eden或幸存者)可能不够大,或者您有太多中等数据。 (GC没有特别好处理)

答案 1 :(得分:0)

是的,

Java使用'标记和扫描算法'来使对象符合垃圾回收的条件。

这与你的葡萄例子类似。 JVM标记所有不再使用值“1”引用的对象,之后所有不符合条件的对象保留值“0”。算法运行时,扫描所有值为“1”的对象。