>>543
循環参照があっても大丈夫などの仕様を満たしていればどんなGCでもOKなはず。

方式1、マーク&スイープ
スタック・スタティックから参照を辿れた奴をマークして、マークが付かなかった
奴を捨てる。

方式2、ストップ&コピー
ヒープを2分割して、片方だけ使う。GC時に実行を一瞬ストップして、
参照を辿りながらもう片方にコピーして、そちらを使って再開する。
元の奴は捨てる。

SunのJVMはこの2つを併用しているらしい。(1999年の本より。今は分からん)
詳しくは上記の単語を検索してね。嘘がまじっているかもしれんから。