1. Modelo singleton estilo hambriento
(1) Concepto de patrón singleton estilo hambriento
El patrón singleton estilo Hungry se inicializa inmediatamente cuando se carga la clase y se crea un objeto singleton . Es absolutamente seguro para subprocesos . Se crea una instancia antes de que aparezca el subproceso. No hay ningún problema de seguridad de acceso.
(2) Implementación del código
public class HungrySingleton {
private static final HungrySingleton hungrySingleton = new HungrySingleton();
private HungrySingleton(){
}
public static HungrySingleton getInstance(){
return hungrySingleton;
}
}
(3) Ventajas y desventajas
- Ventajas: alta eficiencia de ejecución, alto rendimiento, sin bloqueos
- Desventajas: en algunos casos, puede causar desperdicio de memoria, destrucción de reflejos y destrucción de serialización de singletons.
(4) Escenarios de uso
- El patrón singleton estilo Hungry es adecuado para situaciones en las que hay pocos objetos singleton. Escribir de esta manera puede garantizar una seguridad absoluta de los subprocesos y una eficiencia de ejecución relativamente alta.
- Pero su desventaja también es obvia, es decir, se crean instancias de todas las clases de objetos cuando se cargan. Si hay una gran cantidad de objetos únicos en el sistema, la inicialización del sistema provocará una gran pérdida de memoria.