dev*_*per 7 java database-connection finalizer
可能重复:
为什么要实现finalize()?
我看到一些带有以下代码的java文件:
public void finalize() {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
Connection的finalize方法最好的做法?Connection或需要关闭其他对象,如PreparedStatement?从Java 7开始,关闭资源的最佳实践是使用try-with-resource:
http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
小智 5
不,这不是"最佳实践",甚至不是"可行的实践".你不能保证什么时候调用终结器,所以它不起作用.
相反,您应该将资源范围限定为块,如下所示:
try {
acquire resource
}
finally {
if (resource was acquired)
release it
}
Run Code Online (Sandbox Code Playgroud)