Jeroen Frijters wrote:
> Archie Cobbs wrote:
> > Dumb question.. why wouldn't it work to just use a 
> > WeakHashMap instead of a HashMap in all those places?
> 
> Not a dumb question at all. That *would* work. The "problem" 
> is that (at least on some runtimes) WeakHashMap is much more
> expensive than this approach.

Actually, it would not work in all cases. For serialization it would
work, because there the key is a Class instance, but for both Proxy and
ResourceBundle, the key is more complex, so it wouldn't work to directly
use a WeakHashMap (you'd have to add a layer of indirection, effectively
keeping a separate cache per class loader and in that case this approach
is arguably better).

There may be other reasons, Roman also didn't like to use a WeakHashMap,
but I didn't ask why.

Using a WeakHashMap would also make it a little harder to implement the
ResourceBundle LRU policy, but that was not the motivation for this
approach.

Regards,
Jeroen

Reply via email to