これはインタビューの質問ですが、正解についてはよくわかりません。次のようなクラスがあるとします。
public class A {
public Object link;
public A() {
link = null;
}
}
次に、2 つのインスタンスを作成します。
A a1 = new A();
A a2 = new A();
a1.link = a2;
a2.link = a1;
次に、参照を解放します。
a1 = null;
a2 = null;
次に問題は、JVM が GC メカニズムを使用するためです。このケースをどのように処理しますか?実行時に 2 つのインスタンスを即座に削除しますか、それとも単にメモリ空間に署名を付けてそのままにしておくのでしょうか? 循環を形成し、外部参照を持たないそのようなインスタンスが 100 万個ある場合はどうなりますか? クリーニングによって GC スレッドが停止しますか?