java的垃圾回收方法finalize()

众所周知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()来验证终结条件,将很难发现这种缺陷。

猜你喜欢

转载自www.cnblogs.com/fly0512/p/9277422.html