HotSpotVMのガベージコレクターは参照カウントを使用しません。マーク/スイープ/コンパクトコレクターまたはコピーコレクターのいずれかがあり、どちらもそのルート(すべてのアクティブなスレッドの呼び出しスタック上のローカル変数、静的フィールドなど)。
基本的に、オブジェクトがどのルートからも到達できない場合は、他のデッドオブジェクトがいくつ参照していても、オブジェクトは単にデッドになります。このコンテキストでのデッドは、実際にはオブジェクトのメモリがすでに解放されていることを意味するのではなく、オブジェクトが次の実行中にGCによって再利用(削除)されることを示しているだけです。
簡単に言うと、グラフトラバーサル中にGCがアクセスするすべてのオブジェクトは生きており、他のすべてのオブジェクトは死んでいます。
したがって、グラフ構造へのすべての外部参照をnullにすると、保持している内部参照の数に関係なく、グラフ構造全体がガベージコレクションされます。
これは、Bob Leeによるマーク&スイープアルゴリズムの優れた説明です。
http://www.youtube.com/watch?v=KTC0g14ImPc#t=177s
以降の同じ動画:
http ://www.youtube.com/watch?v = KTC0g14ImPc#t = 2917s