糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > java建议:避免使用终结方法

java建议:避免使用终结方法

时间:2019-08-31 03:26:29

相关推荐

java建议:避免使用终结方法

1.美图

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

终结方法会导致行为不稳定、降低性能,以及可移植性问题。当然,终结方法也有其可用之处,我们将在本条目的最后再做介绍;但是根据经验,应该避免使用终结方法。

C++的程序员被告知“不要把终结方法当作是C++中析构器(destructors)的对应物”。在

C++中,析构器是回收一个对象所占用资源的常规方法,是构造器所必需的对应物。在Java中,当一个对象变得不可到达的时候,垃圾回收器会回收与该对象相关联的存储空间,并不需要程序员做专门的工作。C++的析构器也可以被用来回收其他的非内存资源。而在Java中,一般用try-finally块来完成类似的工作。

终结方法的缺点在于不能保证会被及时地执行[JLS,12.6]。从一个对象变得不可到达开始,到它的终结方法被执行,所花费的这段时间是任意长的。这意味着,注重时间(time critical)的任务不应该由终结方法来完成。例如,用终结方法来关闭已经打开的文件,这是严重错误,因为打开文件的描述符是一种很有限的资源。由于JVM会延迟执行终结方法,所以大量的文件会保留在打开状态,当一个程序再不能打开文件的时候,它可能会运行失败。<

如果觉得《java建议:避免使用终结方法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。