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
AutoCloseableorCloseableinterface. - Eliminates verbose boilerplate
finallyresource closing logic.
Knowledge Check
What interface must a custom class implement to be managed inside a try-with-resources statement?