Q22: How does Try-With-Resources operate under the hood with AutoCloseable?

Introduced in Java 7, Try-With-Resources guarantees that open resources (files, database connections) are closed automatically upon block exit. Any resource declared inside try(Resource r = ...) must implement java.lang.AutoCloseable or java.io.Closeable. The compiler generates hidden finally blocks calling .close(), suppressing secondary exceptions cleanly.

Try-With-Resources Syntax
try (BufferedReader br = new BufferedReader(new FileReader("data.txt"))) {
    System.out.println(br.readLine());
} // br.close() is automatically invoked here, even if exceptions occur
💡 BufferedReader is closed automatically upon exiting the try block.
Key Takeaways
  • Requires classes to implement AutoCloseable or Closeable interface.
  • Eliminates verbose boilerplate finally resource closing logic.
Knowledge Check

What interface must a custom class implement to be managed inside a try-with-resources statement?