美文网首页
提示八-九

提示八-九

作者: 飞絮搅青冥 | 来源:发表于2022-05-13 23:05 被阅读0次

今天看第八条和第九条:

第8条:避免使用终结方法和清理器。

对于这一条,我感触其实不深,因为平时写代码几乎不会用到这两种机制,看了下我们项目中好像确实也没有人使用过,所以就简单摘录一下作者的观点,学习一波。

  • 终结方法(finalizer)通常是不可预测的,也是很危险的,一般情况下是不必要的。使用终结方法会导致行为不稳定,降低性能,以及可移植性问题。
  • 终结方法并不一定会被及时的执行,从一个对象变得不可到达开始,,到它的终结方法被执行,,所花费的时间是任意长的。JVM会延迟执行终结方法。
  • Java语言规范不能保证终结方法会被执行,不应该依赖终结方法来更新重要的持久状态。
  • System.gc()System.runFinalization()方法增加了终结方法被执行的机会,但是它们并不保证终结方法一定会被执行。
  • 使用终结方法或者清洁器机制会导致严重的性能损失。
  • 为对象封装需要结束的资源,让类实现 AutoCloseable 接口即可,并要求客户在在不再需要时调用每个实例 close 方法,通常使用 try-with-resources 确保终止。
  • 除了作为一个安全网或者终止非关键的本地资源,不要使用 Cleaner 机制,或者是在 Java 9发布之前的 finalizers 机制。

第九条:优先使用try-with-resources而不是try-finally。

  • try-finally最大的问题是当有多个资源需要关闭的时候,嵌套的时候看起来很丑。并且如果try和finally块中都有异常抛出,通常第二个会掩盖了第一个。

  • 使用try-with-resources只需要实现AutoCloseable接口。

  • 当多个异常抛出的时候, 后续异常会被suppressed, 可以通过getSuppressed()

try-with-resources最初是在Java 7中引入的,其背后的全部想法是,开发人员无需担心仅在一个try-catch-finally块中使用的资源的资源管理。这是通过消除对finally块的需要而实现的,实际上,开发人员仅在关闭资源时才使用块。并且代码通常更清晰易读,因此使代码更易于管理,尤其是当我们处理许多try块时。

在try语句之后在括号中打开的资源仅在此处和现在需要。.close()在try块中完成工作后,我将立即调用它们的方法。如果在try块中抛出异常,无论如何我都会关闭这些资源。

从Java 9开始,没有必要在try-with-resources语句中声明资源。但是我们系统使用的还是Java 8,所以还用不了这个新特性,不过我们系统中try-finally已经被广泛运用,不管是需要资源还是做一些可能会存在问题的操作时都有这样用到,我以前也写了好多这样的方法,导致有时候出现错误时并不能从堆栈中找到有用的报错信息,这一点真的一度非常困扰我。以后可以尝试多使用try-with-resources的方式来编写代码。

相关文章

  • 提示八-九

    今天看第八条和第九条: 第8条:避免使用终结方法和清理器。 对于这一条,我感触其实不深,因为平时写代码几乎不会用到...

  • 诗二首

    @星期八 预报提示 暴雨黄色预警 雷电黄色预警 我老眼昏花 看成是 今天星期八 明天星期九 2020.8.17. ...

  • 腊八节东凤特稿:东凤书院的腊八粥(上)

    昨日腊八节,突发灵感,写得不够好,也算是送个腊八节的祝福。 提示: “九峰郡”就是目前东华和凤九所在的凡世了,静园...

  • 温馨提示(九)

    1、一段时间只专注做一件事能高效。 2、凡事不钻牛角尖,接受不完美的自己。 3、过一天很容易,把握住一天却很难。 ...

  • 温馨提示(八)

    1、比别人多一点执着,你就会创造奇迹。 2、知识要横向、纵向联系,才能融会贯通,触类旁通。 3、不练就七十二变,怎...

  • 提示6-8

    今天继续学习本书的提示6-8。还是先看提示: 提示六:做推动变革的催化剂提示七:牢记全景提示八:将质量要求视为需求...

  • 我的愿望就是,你能有九条尾巴。

    传说猫界最高的层次就到修练成九条尾巴。而第九条尾巴却是极难修炼的,当猫修炼到第八条尾巴时会得到一个提示,帮助他的主...

  • 提示9-10

    今天继续学习本书的提示9-10。还是先看提示: 提示九:对知识组合做定期投资提示十:批判性地分析你读到和听到的东西...

  • 火车的故事-1

    九点的高铁,八点准备出门,因为早高峰,平时20分钟的路程翻了倍,送我的司机立志要准时送我到站。 GPS提示我们估计...

  • 年轻干部的“八缺八不缺”与"九要九不要"

    年轻干部的“八缺八不缺”与"九要九不要" 作者:徐文秀 作者通过对年轻干部的“八缺八不缺”与“九要九不要”的阐述,...

网友评论

      本文标题:提示八-九

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