WeakHashMap y almacenamiento en caché de Java: ¿por qué hace referencia a las claves, no a los valores?

De JavaMapa débil A menudo se cita como útil para el almacenamiento en caché. Parece extraño, sin embargo, que sus referencias débiles estén definidas en términos de las claves del mapa, no de sus valores. Quiero decir, son los valores que quiero almacenar en la memoria caché, y los que quiero que recolecten basura una vez que nadie más, además de la memoria caché, haga referencia a ellos, ¿no?

¿De qué manera ayuda mantener las referencias débiles a las teclas? Si haces unExpensiveObject o = weakHashMap.get("some_key"), luego quiero que la caché se mantenga en 'o' hasta que la persona que llama ya no tenga la referencia segura, y no me importa en absoluto el objeto de cadena "some_key".

¿Me estoy perdiendo de algo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta