0

私は6つの別々の Java を持っていClasses A,B,C,D,E and Fます。

Class Aのオブジェクトを作成しClass B、 のメソッドを呼び出しますClass B

Class Bmethod は のオブジェクトを作成し、class Cのメソッドを呼び出しますclass C

Class CD,E,Fメソッドは、クラスのオブジェクトを作成し、それらのメソッドを呼び出します。

最後にクラス A に制御が戻ったときに、 のオブジェクト参照をClass Bnull にすると、class B,C,D,E,Fこれまでに作成された のすべてのオブジェクトがガベージ コレクションの対象になりますか?

4

4 に答える 4

0

一般的にはい。
主な例として、C が作成した D のインスタンスへの参照を、http セッションまたは EJB トランザクションに格納される (または参照を直接そこに格納する) Collection に配置するとします。その場合、これらの参照により、関連する D のインスタンスがガベージ コレクションされなくなり、それらが参照を保持するすべてのものが妨げられます。

于 2013-03-07T06:52:05.103 に答える
0

はい。そうなる。親クラスは null に参照されて孤立しているため、その下のすべての参照オブジェクトは GC の対象になります。

オブジェクトへの強い参照が存在しなくなると、オブジェクトは到達不能状態になります。オブジェクトに到達できない場合は、コレクションの候補です

http:// 192.9.162.55 /docs/books/performance/1st_edition/html/JPAppGC.fm.html

于 2013-03-07T06:20:15.353 に答える
0

はい、メソッド内で作成された場合、つまりローカルで作成された場合はガベージ コレクションの対象となります。インスタンス変数オブジェクトの場合は、null に設定されたオブジェクトのコピーのみが gc の対象となります。

于 2013-03-07T06:27:34.190 に答える
0

はい。「オブジェクトへの参照がなくなると、そのオブジェクトはガベージ コレクションの対象になります。」

したがって、b が参照されなくなった場合、gc の対象となります。今度はそれが集められると、c の参照がなくなるので、c が適格になり、話が進みます。

于 2013-03-07T06:45:37.757 に答える