Junior — Middle
What is the role and purpose of the keyword finalize in resource management of objects?
sobes.tech AI
Answer from AI
In Java, the keyword finalize refers to the finalize() method, which is called by the garbage collector before an object is removed from memory. Its role is to give the object a chance to release or clean up resources (such as closing files, freeing network connections) that are not automatically managed.
However, using finalize() is not recommended because:
- Calling
finalize()is not guaranteed and may be delayed. - It reduces performance.
- It is better to use try-with-resources constructs or explicitly close resources.
Example of a finalize() method:
@Override
protected void finalize() throws Throwable {
try {
// Resource cleanup
} finally {
super.finalize();
}
}
The modern approach is to implement the AutoCloseable interface and manage resources explicitly.