第7条:避免使用终结方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/KingJin_CSDN_/article/details/82757320

一、终结方法(finalizer)通常是不可预测的,也是很危险的,一般情况下是不必要的 —— 会导致行为不稳定、降低性能,以及可移植性问题。

二、当一个对象变得不可达的时候,一般用try-finally块来完成类似的工作。

三、终结方法的缺点在于不能保证会被及时地执行。——从一个对象变得不可到达开始,到它的终结方法被执行,所花费的这段时间是任意长的。

四、不应该依赖终结方法来更新重要的持久状态。——例如,依赖终结方法来释放共享资源(比如数据库)上的永久锁,很容易让整个分布式系统垮掉。

五、使用终结方法会严重的性能损失。

六、显示终止方法模式的示例中所示的四个类(FileInputStream、FileOutputStream、Timer和Connection),都具有终结方法,当它们的终结方法未能被调用的情况下,这些终结方法充当了安全网。

七、终结方法另一个合理用途与对象的本地对等体有关。

猜你喜欢

转载自blog.csdn.net/KingJin_CSDN_/article/details/82757320
今日推荐