Встречается на собеседованиях • сегодня
Какие знаешь реализации Singleton
В Java есть несколько способов реализации Singleton:
-
Eager Initialization – создание экземпляра при загрузке класса.
javapublic class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton() {} public static Singleton getInstance() { return INSTANCE; } } -
Lazy Initialization – создание экземпляра при первом вызове.
javapublic class Singleton { private static Singleton instance; private Singleton() {} public static synchronized Singleton getInstance() { if (instance == null) instance = new Singleton(); return instance; } }
-
Double-Checked Locking – оптимизация ленивой инициализации с volatile.
javapublic class Singleton { private static volatile Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) instance = new Singleton(); } } return instance; } } -
Enum Singleton – потокобезопасный и сериализуемый вариант.
javapublic enum Singleton { INSTANCE; public void doSomething() {} }
Выбор зависит от требований к ленивости, потокобезопасности и сериализации.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы