zoukankan      html  css  js  c++  java
  • EffectiveJava(7)避免使用终结方法

    避免使用终结方法

    1.使用终结方法会导致行为不稳定,性能降低,以及可移植性的问题.(终结线程的优先级过低)
    终结方法不能保证被及时的执行(从一个对象变得不可到达开始,到中介方法被执行,所花费的时间是任意长的)

    2.怎么不编写终结方法:提供一个显式的终止方法,并要求该类的客户端在每个实例不再有用的时候调用这个方法(该实例必须记录下自己是否已经被终止)
    终止方法与try - finally一起使用 在finally子句中可以保证即使在使用对象的时候有异常抛出,该终止方法也会被执行
    终止方法:FileInputStream FileOutputStream Timer Connection 当上述类中终止方法未被调用,则调用终结方法
    3.什么时候使用终结方法
    -当对象所有者忘记调用显式终止方法时,终结方法可以充当安全网
    -如果本地对等体不拥有关键的资源,使用终结方法

    本地对等体:普通对象通过本地方法委托给一个本地对象.
    终结方法守卫者:不吧终结方法放在要求终结处理的类中,而把终结方法放在一个匿名的类中,该匿名类的唯一用途就是终结他的外围实例

  • 相关阅读:
    弹性盒子
    bzoj4237 稻草人
    bzoj2654 tree
    bzoj4813 [Cqoi2017]小Q的棋盘
    bzoj1014 [JSOI2008]火星人
    bzoj3242 [Noi2013]快餐店
    bzoj4025 二分图
    bzoj3237 [Ahoi2013]连通图
    bzoj3244 [Noi2013]树的计数
    bzoj2431 [HAOI2009]逆序对数列
  • 原文地址:https://www.cnblogs.com/qwop/p/6637306.html
Copyright © 2011-2022 走看看