WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Java JDBC · Intermediate · question 32 of 100

What are the key differences between the close() and the finalize() methods in JDBC?

📕 Buy this interview preparation book: 100 Java JDBC questions & answers — PDF + EPUB for $5

The ‘close()‘ and ‘finalize()‘ methods in JDBC have different purposes and are used in different contexts.

The ‘close()‘ method is used to release any resources like database connections, statements, result sets, etc., that were acquired during the use of JDBC objects. The ‘close()‘ method is part of the ‘AutoCloseable‘ interface, which is implemented by all JDBC objects that require cleaning up. This method is called explicitly by the application to release resources, typically in a finally block.

Here’s an example:

    try (Connection conn = DriverManager.getConnection(url, username, password);
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(query)) {
        // use the result set
    } catch (SQLException e) {
        // handle exceptions
    }

In this example, the ‘try‘ block creates a ‘Connection‘, a ‘Statement‘, and a ‘ResultSet‘. These objects are automatically closed at the end of the block because they implement ‘AutoCloseable‘. Even if an exception is thrown, the objects are closed properly.

On the other hand, the ‘finalize()‘ method is called by the garbage collector when an object is being garbage collected. The ‘finalize()‘ method is used to perform any necessary cleanup operations on an object before it’s garbage collected. In JDBC, the ‘finalize()‘ method is not used by the application as it’s not part of the API.

It’s important to note that relying on the garbage collector to release resources may not be efficient or reliable, especially when dealing with resources like database connections that are scarce or expensive. Therefore, it’s best practice to explicitly call the ‘close()‘ method to release any resources as soon as they’re no longer needed.

In summary, the ‘close()‘ method is called explicitly by the application to release resources, while the ‘finalize()‘ method is called by the garbage collector to perform cleanup operations before an object is garbage collected.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Java JDBC interview — then scores it.
📞 Practice Java JDBC — free 15 min
📕 Buy this interview preparation book: 100 Java JDBC questions & answers — PDF + EPUB for $5

All 100 Java JDBC questions · All topics