2011-01-27 260 views

回答

1

JVM維護所有引用對象的映射。每個GC循環(在java,train,mark和sweep等中有許多GC方法)遍歷整個對象引用列表(注意對象引用存在於堆棧中,數據存在於堆中)以及所有對象引用不再被引用標記爲準備垃圾收集/垃圾收集。

這是理解GC的一種簡化方式,大多數開發人員不需要知道GC進程的內部;但有一些理解是很好的。

這裏有一些鏈接,你可能會感興趣:

http://chaoticjava.com/posts/how-does-garbage-collection-work/

http://java.sun.com/docs/hotspot/gc1.4.2/

http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html

http://www.oracle.com/technetwork/java/javase/tech/ts-3153-coomes-19899-dsf-150093.pdf#search=%22garbage%20collection%22

希望這有助於...

+0

的記憶收藏* 「JVM維護地圖的所有引用的對象。」 * - 不完全是。在某些情況下,GC有效*構建*從「舊空間」複製到「新空間」的對象的臨時地圖。在其他情況下,對象標題中只有一點點,表示它被引用......並且根本沒有映射。 – 2011-01-27 08:05:42