2

長期的なオブジェクトAがあり、Aへの参照を含む一時オブジェクトB、C、Dなどがたくさんある場合、Aが何かによって参照されている限り、それらの一時オブジェクトは収集されますか?

class A {} // (sits in web app session)

class B {
  private A a;
}

class C {
  private A a;
}

ここで、BとCは要求に対してのみ存在しますが、Aへの参照が含まれています。

4

4 に答える 4

4

BとCは、リクエスト後すぐにガベージコレクションできます。それらについては何も言及していません。

于 2012-06-04T20:59:59.883 に答える
2

BとCに到達する方法がない場合(ただし、他のオブジェクトに到達する場合)、通常どおり収集されます。

于 2012-06-04T20:59:56.013 に答える
2

はい、集めることができます。Aがそれらへの参照を保持している場合、Aがまだ到達可能である限り、それらは収集されません。

于 2012-06-04T21:00:13.267 に答える
1

はい、そうします。ガベージ コレクションは、ルートの到達可能なオブジェクト (基本的に、現在アクティブな呼び出しのローカル変数とグローバル) から到達できる限り、オブジェクトを存続させます。

およびオブジェクトAへの参照が含まれていない場合、それらを存続させることはできません。およびオブジェクトによって参照されるという事実は関係ありません。BCABC

于 2012-06-04T21:06:11.437 に答える