考虑此示例代码:
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
为什么d? 这是真的,当执行6号线,5号线创建对象的实例变种O与局部变量O和当8号线执行现在仅由当地的裁判VARØ引用的对象,那么为什么答案是现在参看是d,并执行第9行之后会发生什么? 谢谢。