java.sql.Connection对象在收集垃圾时会自动关闭吗?

Aje*_*nga 3 java mysql sql garbage-collection

我按照close()最后一个块的做法:

void foo() {
    Connection conn;
    try {
        conn = getConnection();
        // ..
    } final {
        try {
            conn.close()
        } catch(Exception e) {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

是否真的有必要调用close()连接,还是垃圾收集器会自动执行此操作?

我对垃圾收集引起的额外延迟感到满意,我只是不希望连接永远保持打开状态.

use*_*421 5

是否真的有必要在连接上调用Close()

是.

或垃圾收集器会自动执行此操作?

未指定.也许某些实现会这样做.你不能依赖它.

我对GC会引起的额外延迟感到满意.

GC可能永远不会发生.无限的你真的好吗?

我只是不希望连接永远保持开放.

你不希望它们在必要时间内保持打开状态.它们是稀缺资源.不要浪费它们."建议程序员在不再需要时立即关闭所有连接(使用方法Connection.close)和语句(使用方法Statement.close),从而尽可能早地释放DBMS资源."