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


    终结方法通常是不可预测的,也是很危险的,一般情况下是不必要的。

    如果我们为一个类重写写了Object类的终结方法,那么这个类的实例在被垃圾回收器回收之前会先执行终结方法,

    在终结方法中,这个实例对象有可能会被重写引用,也可以用来释放一些资源文件等等,从而不被回收或者对象的善后工作。

    终结方法的缺点在与不能保证会被及时的执行。当一个实例对象变得不可达,到这个实例的终结方法被执行,这之间

    的时间是任意长的。甚至Java语言规范不仅不能保证对象的终结方法被及时的执行,而且根本不能保证它们会被执行。

    为了不使用终结方法,但是在对象回收之前,又释放对象中封装的资源(例如文件或者线程)。我们只需要提供一个显示的终结

    方法,并要求客户端代码在对象不再有用的时候,调用显示的终结方法。

    显示终止方法的典型例子就是InputStream ,OutputStream 和java.sql.Connection类中的close()方法。

    显示的终止方法通常与try-finally结构结合起来使用,以确保及时终止。

  • 相关阅读:
    通过strace 监控 fdatasync
    RAID 2.0
    AHCI vs NVMe
    NVMe 图解
    详解linux运维工程师入门级必备技能
    条带深度 队列深度 NCQ IOPS
    NVMe 与 AHCI
    IO负载高的来源定位 IO系列
    磁盘性能指标--IOPS 理论
    java程序员从笨鸟到菜鸟系列
  • 原文地址:https://www.cnblogs.com/wangliyue/p/4441607.html
Copyright © 2020-2023  润新知