dea*_*mon 6 java exception-handling exception finally
我的一位同事null在最后的块中提到了参考.我认为这是胡说八道.
public Something getSomething() {
JDBCConnection jdbc=null;
try {
jdbc=JDBCManager.getConnection(JDBCTypes.MYSQL);
...
}
finally {
JDBCManager.free(jdbc);
jdbc=null; // <-- Useful or not?
}
}
Run Code Online (Sandbox Code Playgroud)
你怎么看呢?
kro*_*ock 12
你是对的,jdbc是一个局部变量,所以当getSomething()方法返回时jdbc将超出范围并且符合垃圾收集条件,这实际上与将其设置为null相同.因此,当下一行代码超出范围时,将变量设置为null是没有意义的.
优良作法是将变量限制在所需的最小范围内,例如,如果在for循环中只需要一个变量,那么在for循环中声明它,并且当代码退出for循环时它将有资格进行垃圾收集.这样,除了降低方法的复杂性之外,甚至还需要将局部变量设置为null,并且有利于您的代码变得更加模块化,更易于阅读和维护.
| 归档时间: |
|
| 查看次数: |
1744 次 |
| 最近记录: |