有时当撤消一个对象时,需要完成一些操作。例如,如果一个对象正在处理的是非Java资源,如文件句柄或window字符字体,这时你要确认在一个对象被撤消以前要保证这些资源被释放。为处理这样的状况,Java提供了被称为收尾(finalization)的机制。
使用该机制你可以定义一些特殊的操作,这些操作在一个对象将要被垃圾回收程序释放时执行。
要给一个类增加收尾(finalizer),你只要定义finalize ( )方法即可。Java回收该类的一个对象时,就会调用这个方法。
在finalize ( )方法中,你要指定在一个对象被撤消前必须执行的操作。垃圾回收周期性地运行,检查对象不再被运行状态引用或间接地通过其他对象引用。就在对象被释放之前,Java运行系统调用该对象的finalize( )方法。
finalize()方法的通用格式如下:
protected void finalize( )
{
// finalization code here
}
其中,关键字protected是防止在该类之外定义的代码访问finalize()标识符。</