第7条:避免使用终极方法

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

一般在java中,一般用try-catch来完成回收一个对象所占资源的工作。

终结方法的缺点:
1.不能保证会被及时地执行

因为从一个对象变得不可到达开始,到它的终结方法被执行,所花费的时间是任意长的。

因此,注重时间(time-critical)的任务不应该由终结方法来完成。

例如:
用终结方法来关闭已打开的文件,这是一个严重错误

2.使用终结方法有一个非常严重的性能损失

例子:
在一般机器上,创建和销毁一个简单对象的时间大约为5.6ns
增加一个终结方法使时间增加到了2400ns


那么问题来了,如果类的对象中封装的资源确实需要终止但是又不编写终结方法,该怎么办?

只需要提供一个显式的终止方法,一般可以配合try-catch使用

例如:
InputStream,OutputStream和java.sql.Connection方法上的close方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值