From jGuru:
A WeakHashMap is a special Map
implementation where the keys of the
map are stored in a
java.lang.ref.WeakReference
. By
storing the keys in a weak reference,
key-value pairs can dynamically be
dropped from the map when the only
reference to the key is from the weak
reference. This makes the WeakHashMap
an excellent implementation for a
weakly referenced list, where entries
that aren't used elsewhere may be
dropped with no side effects. Also,
just because a key may be dropped,
doesn't mean it will immediately be
dropped. If the system has sufficient
resources, the weak key reference that
isn't externally referenced could stay
around for a long time.
More on References: