ridden to free resources.

 <p>Note that objects that override <code>finalize</code> are significantly more expensive than
 objects that don't. Finalizers may be run a long time after the object is no longer
 reachable, depending on memory pressure, so it's a bad idea to rely on them for cleanup.
 Note also that finalizers are run on a single VM-wide finalizer thread,
 so doing blocking work in a finalizer is a bad idea. A finalizer is usually only necessary
 for a class that has a native peer and needs to 