Встречается на собеседованиях • сегодня
Что такое DoubleCheck проверка
DoubleCheck (двойная проверка) — это паттерн для ленивой инициализации синглтона с потокобезопасностью.
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;
}
}Зачем?
- Первая проверка (
instance == null) ускоряет доступ, если объект уже создан. synchronizedблокирует только первый вызов.volatileгарантирует видимость изменений между потоками.
Без volatile возможна частичная инициализация из-за переупорядочивания инструкций.

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