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

7.避免使用终结方法

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

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

    终结方法的坏处

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

    终结方法的好处

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

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

    总结

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

    相关文章

      网友评论

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

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