下面创建了一个带finalize()方法的类,该方法能打印消息,在main()里创建一个这个类的对象,看一下程序是怎样运行的。
public class E03 {
protected void finalize() {
System.out.println("Finalize called");
}
public static void main(String args[]) {
new E03();
}
}
运行后不一定能看到finalize()中的打印消息,因为程序如果没有产生足够多的垃圾,垃圾回收器就不会启动。
public class E03 {
protected void finalize() {
System.out.println("Finalize called");
}
public static void main(String args[]) {
new E03();
System.gc();
}
}
程序改成这样以后,就一定会调用finalize()方法。