State the behavior that is guaranteed by the garbage collection system.
Write code that explicitly makes objects eligible for garbage collection.
Recognize the point in a piece of source code at which an object becomes eligible for garbage collection.
There is no guarantee that any object will ever be garbage collected. An object becomes eligible for garbage collection when it has no references from running code. If a reference is reassigned, the object previously denoted by the reference now has one reference less, increasing this object's chances of becoming eligible for garbage collection. It is important to be able to identify where in the code an object will have no references during execution. Objects may override the finalize() method, which is called only once after the object becomes eligible, but before its memory is reclaimed.