La JVM guarda en caché objetos Integer de -128 a 127 y reutiliza literales de texto del string pool. ¿Qué patrón es este?
Opciones
- Flyweight: compartir objetos inmutables comunes en lugar de hacer copias (Opción correcta)
- Observer: los objetos reciben aviso cuando otro cambia de estado
- Command: cada petición se envuelve en su propio objeto
- Mediator: los objetos se comunican a través de un objeto central
Respuesta
Flyweight: compartir objetos inmutables comunes en lugar de crear muchos idénticos
Por qué
Flyweight ahorra memoria compartiendo objetos idénticos e inmutables en lugar de crear duplicados.
Integer.valueOf(100) siempre devuelve el mismo objeto en caché; los literales de texto idénticos comparten un String en el pool.
Solo es seguro cuando el objeto compartido es inmutable.
Recuerda
Flyweight = compartir objetos inmutables idénticos.