美文网首页
7.避免使用终结方法

7.避免使用终结方法

作者: 哲学与豆包 | 来源:发表于2018-03-12 00:11 被阅读0次

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

终结方法的坏处

  • 不能保证被及时执行
  • 非常严重的性能损失

终结方法的好处

  • 充当最后的安全网,但也并不是特别建议

建议
当我们需要手动结束一个对象的时候,显示的释放资源,比如InputStream 的 close方法

总结

总之除非是作为资源回收处理的第二道防线(安全网)或者是为了终结非关键的资源,否则请不要使用终结方法。如果没办法真的使用了finalize,别忘记了调用super.finalize()。还应考虑是否使用终结方法守卫者,使未调用super.finalize()方法的类的父类的终结方法也会被执行。

相关文章

  • 7.避免使用终结方法

    终结方法(finalizer)通常是不可预测的,也是很危险的,一般情况下是不必要使用它的。使用终结方法会导致行为不...

  • 避免使用终结方法

    第七条:避免使用终结方法(finalizer) 1. 解释 本条的意思是,让你尽量不要在你的类中覆盖finaliz...

  • 07-避免使用终结方法

    阅读原文 07-避免使用终结方法   01 - 终结方法(finalizer)通常是不可预测的,也是危险的,一般情...

  • [Effective Java] (07)避免使用终结方法

    终结方法(finalizer):通常是不可预测的,也是很危险的,一般情况下是不必要的。虽然终结方法也有一些好处,但...

  • 避免使用终结方法~来自effective JAVA

    终结方法通常是不可预测的,也是危险的,一般情况下是不必要的。 终结方法的缺点在于不能保证会被及时地执行。从一个对象...

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

    一、终结方法VS析构器 熟悉C++的都知道,析构器是用来回收一个对象所占用资源的常规方法,是构造器所必需的对应物。...

  • java代码优化——避免使用终结方法

    一. finalize()基本概念 所谓的终结方法其实是指finalize()。终结方法finalizer通常是不...

  • 高效Java第七条避免使用终结方法

    终结方法的缺点 终结方法(finalizer)是不可预测的,也是很危险的。使用终结方法会导致行为不稳定、降低性能,...

  • effective java 读书笔记

    第二章:创建和销毁对象 第7条:避免使用终结方法 final、finally、finalize的区别: 第三章对所...

  • 第七条避免使用终结方法

    finalize()通常是不可预测的,也是很危险的,一般情况下是不必要的,使用终结方法会导致行为不稳定,降低性能,...

网友评论

      本文标题:7.避免使用终结方法

      本文链接:https://www.haomeiwen.com/subject/zyygfftx.html