Wann ist ein Objekt für einen Garbage Collector geeignet?
Betrachten Sie diesen Beispielcode:
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. }
Wenn die Methode doSomething aufgerufen wird, steht nach welcher Zeile das in Zeile 5 erstellte Objekt für die Garbage Collection zur Verfügung?
A. Linie 5
B. Linie 6
C. Linie 7
D. Linie 8
E. Linie 9
F. Linie 10
Antwort: D
warum d? Wenn Zeile 6 ausgeführt wird, wird das in Zeile 5 erstellte Objekt jetzt von der Instanz var o und der lokalen var o referenziert. Wenn Zeile 8 ausgeführt wird, wird das Objekt jetzt nur von der lokalen ref var o referenziert. Warum also die Antwort? ist D und was passiert, nachdem Zeile 9 ausgeführt wurde? Vielen Dank.