Назад к вопросам
Junior — Middle
128
Каким образом реализовать ленивую инициализацию паттерна Singleton?
Ответ от нейросети
sobes.tech AI
Ленивая инициализация Singleton в Java позволяет создавать экземпляр класса только при первом обращении к нему, что экономит ресурсы. Один из распространённых способов — использование внутреннего статического класса:
public class Singleton {
private Singleton() {
// приватный конструктор
}
private static class Holder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return Holder.INSTANCE;
}
}
Здесь класс Holder загружается и инициализируется только при первом вызове getInstance(), что обеспечивает потокобезопасность и ленивую инициализацию без синхронизации.