我正在从 java 认证书中做一些练习。在关于垃圾收集的问题中,他们提供了以下代码:
class Test {
private Demo d;
void start() {
d = new Demo();
this.takeDemo(d);
}
void takeDemo(Demo demo) {
demo = null;
demo = new Demo();
}
}
问题是
在第 4 行创建的 Demo 对象何时有资格进行垃圾回收?
我会说它可以在指令 demo=null; 之后收集。因为不再引用它,但他们给出的答案是:
当运行此代码的实例符合垃圾回收条件时
我错过了什么?