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.