码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-20 16:15:19      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

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

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

 

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

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

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

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

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

标签:

原文地址:http://www.cnblogs.com/wangliyue/p/4441607.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!