class Tank {
boolean a = true;
Tank() {
a = false;
}
void pd() {
a = true;
}
protected void finalize() {
if(a) {
System.out.println("Error : the tank is full");
}
}
}
public class Test5_11 {
public static void main(String[] args){
Tank b = new Tank();
b.pd();
new Tank();
System.gc();
}
}
大家请看上面这段程序,理论上我调用System.gc()后会到finalize()里面,打印那个错误信息,可是这样写并不能打印出来任何东西,但只要我将
Tank b = new Tank();
b.pd();
这两行改成new Tank().pd();
就可以打印出来错误信息,小弟初学JAVA,不知道这个finalize()具体的用法,望请指教