This class provides support for weak references. Weak references
are most often used to implement canonicalizing mappings.
Suppose that the garbage collector determines at a certain
point in time that an object is weakly reachable. At that
time it will atomically clear all the weak references to
that object and all weak references to any other weakly-
reachable objects from which that object is reachable
through a chain of strong and weak references.
Returns this reference object's referent. If this reference object has
been cleared, either by the program or by the garbage collector, then
this method returns null.
return
The object to which this reference refers, or
null if this reference object has been cleared