当我们想在系统进行垃圾回收时做一些特定的工作,我们就可以重写 finalze() 函数,因为 Object 的 此函数是空的。

比如:

protected void finalize() throws Throwable {
try {
//do something
}
finally {
super.finalize();
}
}

但这种写法不是完美的,因为如果出现 Exception,finally 不会被调用。super.finalize() 将永远不会被执行。那么解决办法是,要处理 Exception,并在处理后调用 super.finalize()。

05-18 04:17