This class pools objects, for efficiency accross a lightweight
fixed-size primary cache and a variable-size secondary cache - the
latter uses soft references to allow the polled object be GCed if
necessary.
To use the cache, a subclass is defined which provides an implementation
of the abstract get() method - this may be conveniently achieved via
an anonymous subclass.
A Map backed by a limted capacity strong HashMap ("eden") containing
the youngest entries, overflowing into an unlimted WeakMapHash ("aged")
containing the older entries.
Implements a combination of WeakHashMap and IdentityHashMap.
Useful for caches that need to key off of a == comparison
instead of a .equals.
This class is not a general-purpose Map implementation! While
this class implements the Map interface, it intentionally violates
Map's general contract, which mandates the use of the equals method
when comparing objects.