Java中finalize方法用途何在?

2022-12-31,,,,

 package thinking.in.java.demo;

 /*
* finalize用途何在
*
*本例的终止条件是L所有的Book对象在被当做垃圾回收前都应该被签入。但是在main方法
*由于程序员的错误,有一本书没有被录入,要是没有finalize方法来验证终止条件,将很难发现这种缺陷
*注意:System.gc()用于强制进行终止动作,即使不这样做,多执行几次应用程序,分配大量的存储空间
*最终也会导致垃圾回收动作的执行
*
*/
class Book{
boolean checkout=false;
public Book(boolean checkout){
this.checkout=checkout;
}
void checkIn(){
checkout=false;
}
protected void finalize() throws Throwable{
super.finalize();
System.out.println("Error checkIn");
}
}
public class Testpage89 { /**
* @param args
*/
public static void main(String[] args) {
Book novel=new Book(true);
novel.checkIn();
new Book(true);
System.gc();
} }

参见java编程思想第四版:87-89页的内容

Java中finalize方法用途何在?的相关教程结束。

《Java中finalize方法用途何在?.doc》

下载本文的Word格式文档,以方便收藏与打印。