正如主题所说:可以再次引用未引用的对象吗?
我在http://www.javatpoint.com/corejava-interview-questions-4 Q120遇到了这个问题。我为此尝试了Google搜索,但未找到任何链接。我们实际上是如何做到的?
最佳答案
下面的示例不是“狂野的”示例,而是演示了如何使用finalize
方法“取消引用”未引用的对象。这只能发生一次。如果第一个实例的对象第二次变为未引用,则不会再次调用finalize()
方法。
public class Resurrect {
static Resurrect resurrect = null;
public static void main(String[] args) {
Resurrect localInstance = new Resurrect();
System.out.println("first instance: " + localInstance.hashCode());
// after this code there is no more reference to the first instance
localInstance = new Resurrect();
System.out.println("second instance: " + localInstance.hashCode());
// will (in this simple example) request the execution of the finalize() method of the first instance
System.gc();
}
@Override
public void finalize() {
resurrect = this;
System.out.println("resurrected: " + resurrect.hashCode());
}
}
关于java - 可以再次引用未引用的对象吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27743096/