一、终结方法(finalizer)通常是不可预测的,也是很危险的,一般情况下是不必要的 —— 会导致行为不稳定、降低性能,以及可移植性问题。
二、当一个对象变得不可达的时候,一般用try-finally块来完成类似的工作。
三、终结方法的缺点在于不能保证会被及时地执行。——从一个对象变得不可到达开始,到它的终结方法被执行,所花费的这段时间是任意长的。
四、不应该依赖终结方法来更新重要的持久状态。——例如,依赖终结方法来释放共享资源(比如数据库)上的永久锁,很容易让整个分布式系统垮掉。
五、使用终结方法会严重的性能损失。
六、显示终止方法模式的示例中所示的四个类(FileInputStream、FileOutputStream、Timer和Connection),都具有终结方法,当它们的终结方法未能被调用的情况下,这些终结方法充当了安全网。
七、终结方法另一个合理用途与对象的本地对等体有关。