Recovering resources
finalize
to always reclaim resources. Instead, if an object has resources which
need to be recovered, it must define a method for that very purpose - for
example a close method, or a dispose method.
The caller is then required to explicitly call that method when finished with the object,
to ensure any related resources are recovered.
With JDK 7+, the try-with-resources
feature can be used to reclaim resources for
any object that implements AutoCloseable.
For an extensive discussion, please see the "Avoid Finalizers" topic in Effective Java.
The System.runFinalizersOnExit(boolean)
method is deprecated.