加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在finally块中设置reference = null?

发布时间:2020-12-15 02:53:11 所属栏目:Java 来源:网络整理
导读:我的一位同事在finally块中设置了null.我认为这是胡说八道. public Something getSomething() { JDBCConnection jdbc=null; try { jdbc=JDBCManager.getConnection(JDBCTypes.MYSQL); ... } finally { JDBCManager.free(jdbc); jdbc=null; // -- Useful or n
我的一位同事在finally块中设置了null.我认为这是胡说八道.
public Something getSomething() {
    JDBCConnection jdbc=null;
    try {
        jdbc=JDBCManager.getConnection(JDBCTypes.MYSQL);
        ...
    }
    finally {
        JDBCManager.free(jdbc);
        jdbc=null; // <-- Useful or not?
    }
}

你怎么看呢?

解决方法

你是对的,jdbc是一个局部变量,所以当getSomething()方法返回jdbc时,它将超出范围,并且有资格进行垃圾收集,这实际上与将其设置为null相同.因此,当下一行代码超出范围时,将变量设置为null是没有意义的.

优良作法是将变量限制在所需的最小范围内,例如:如果你只需要一个for循环中的变量然后在for循环中声明它,当代码退出for循环时它将有资格进行垃圾收集.这样,除了降低方法的复杂性之外,甚至还需要将局部变量设置为null,并且有利于您的代码变得更加模块化,更易于阅读和维护.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读