Junior — Middle
Wie implementiert man eine lazy Initialisierung des Singleton-Musters?
sobes.tech KI
Antwort von AI
Die lazy Initialisierung des Singleton in Java ermöglicht es, eine Instanz der Klasse nur bei der ersten Verwendung zu erstellen, was Ressourcen spart. Eine der gängigen Methoden ist die Verwendung einer statischen inneren Klasse:
public class Singleton {
private Singleton() {
// privater Konstruktor
}
private static class Holder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return Holder.INSTANCE;
}
}
Hier wird die Klasse Holder nur beim ersten Aufruf von getInstance() geladen und initialisiert, was Thread-Sicherheit und eine lazy Initialisierung ohne Synchronisation gewährleistet.