众所周知java有垃圾回收器负责无用对象占据的内存资源。但也有特殊情况的出现,这个时候有一个叫做finalize()的方法负责。finalize()不该拿来作为通用的清理方法。那finalize()真正的用途是什么?
先看一个例子:
class Book{
boolean checkedOut = false;
Book(boolean checkOut) {
checkedout = checkOut;
}
void checkIn(){
checkedOut = false;
}
protected void sinalize(){
if(checkOut)
System.out.println("错误:确认!")
}
}
public class TerminationCondition{
public static void main(String[] args){
novel.checkIN();
new Book(ture);
System.gc();
}
}如果这个时候没有finalize()来验证终结条件,将很难发现这种缺陷。