このサンプルコードを検討してください。
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. }
doSomethingメソッドが呼び出されると、5行目で作成されたオブジェクトがガベージコレクションに使用できるようになりますか?
A.5行目
B.6行目
C.7行目
D.8行目
E.9行目
F.10行目
回答:D
なぜ?確かに、Line 6が実行されると、Line5で作成されたオブジェクトはインスタンスvaroとローカルvaroによって参照され、Line 8が実行されると、オブジェクトはローカルrefvaroによってのみ参照されるようになります。 Dは何ですか?9行目が実行された後はどうなりますか?ありがとう。