Встречается на собеседованиях • сегодня
Что такое DCL
DCL (Double-Checked Locking) — это шаблон проектирования для ленивой инициализации синглтона, который минимизирует накладные расходы на синхронизацию. Основная идея — проверять блокировку только при первом создании объекта.
java
public 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;
}
}Ключевые моменты:
volatileобязательно — предотвращает проблему частичной инициализации из-за переупорядочивания инструкций- Первая проверка позволяет избежать блокировки при каждом вызове
- Вторая проверка гарантирует единственность экземпляра
Используется редко в современных Java-приложениях, так как есть более простые альтернативы (enum-синглтоны, Holder pattern).

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