0

この答えを説明してもらえますか..? 予想通り答えC

 Given:
 11. class Snoochy {
 12. Boochy booch;
13. public Snoochy() { booch = new Boochy(this); }
14. }
15.
16. class Boochy {
17. Snoochy snooch;
18. public Boochy(Snoochy s) { snooch = s; }
19. }
And the statements:
21. public static void main(String[] args) {
22. Snoochy snoog = new Snoochy();
23. snoog = null;
24. // more code here
25. }

23 行目の実行直後に snoog、snooch、booch によって参照されるオブジェクトについて正しいステートメントはどれですか?

   A. None of these objects are eligible for garbage collection.
   B. Only the object referenced by booch is eligible for garbage collection.
   C. Only the object referenced by snoog is eligible for garbage collection.
   D. Only the object referenced by snooch is eligible for garbage collection.
   E. The objects referenced by snooch and booch are eligible for garbage collection.

Answer: E
4

2 に答える 2

3

2 つのクラスは相互に参照します。したがって、が作成されるとsnoog、 と も取得されます。を設定すると、 の対象となります。boochsnoochsnoog = null;boochsnoochGC

于 2013-04-25T06:36:29.980 に答える
0

23 行目以降には、22 行目で作成されたインスタンスへの参照が残っていませんSnoochy。 => このインスタンスはガベージ コレクションできます。しかし、このインスタンスには、Boochy他の参照が存在しない a への参照 (13 行を参照) が含まれています。=: これもガベージコレクションできます。

于 2013-04-25T06:37:46.767 に答える