6

GCは、オブジェクトaとbが相互に参照しているだけの場合、それらを収集しますか?理由を説明するのを手伝ったり、その論理を説明するための参照ドキュメントを提供したりできますか。どうもありがとう

4

2 に答える 2

6

はい、GC への強い参照が存在しなければ、GC の候補になります。

強い参照だけがオブジェクトをメモリに保持するわけではないことに注意することが重要です。これらは、ガベージ コレクション ルートから連鎖する参照である必要があります。GC ルートは、以下を含む変数の特別なクラスです。

  • (任意のスレッドの) スタック上の一時変数
  • 静的変数 (任意のクラスから)
  • JNI ネイティブ コードからの特別な参照

このドキュメントを参照してください(§ A.3.4 Unreachable および §A.4.2 WeakReference を使用した GC の例)

于 2012-06-02T09:50:18.890 に答える
4

オブジェクト a と b が相互に参照し、他のオブジェクトに干渉していない場合、それらはオブジェクトの孤立した島を形成します。この種のグループも、ガベージ コレクターによって収集されます。このスレッドを見てください。

于 2012-06-02T09:47:21.447 に答える