kiedy obiekt kwalifikuje się do zbierania śmieci?

rozważ ten przykładowy kod:

1.  public class GC {
2.      private Object o;
3.      private void doSomethingElse(Object obj) { o = obj; }
4.      public void doSomething() {
5.          Object o = new Object();
6.          doSomethingElse(o);
7.          o = new Object();
8.          doSomethingElse(null);
9.          o = null;
10.     }
11. }

Kiedy wywoływana jest metoda doSomething, po której linii obiekt utworzony w linii 5 staje się dostępny do zbierania śmieci?

A. Linia 5

B. Linia 6

C. Linia 7

D. Linia 8

E. Linia 9

F. Linia 10

Odpowiedź: D

dlaczego D? prawdą jest, że gdy linia 6 jest wykonywana, obiekt utworzony w wierszu 5 jest teraz wywoływany przez instancję var o i lokalną zmienną o, a gdy wiersz 8 jest wykonywany, do obiektu odwołuje się teraz tylko lokalny ref var o, dlaczego więc odpowiedź jest D i co się dzieje po wykonaniu linii 9? dzięki.

questionAnswers(2)

yourAnswerToTheQuestion