Встречается на собеседованиях • сегодня

Как создать Singleton в Java

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;
    }
}

Ключевые моменты:

  1. volatile для корректной работы в многопоточной среде
  2. Двойная проверка (double-checked locking) для оптимизации
  3. Приватный конструктор блокирует создание через new
  4. Ленивая инициализация (экземпляр создается при первом вызове getInstance())

Альтернатива - использование enum:

java
public enum Singleton {
    INSTANCE;
}

Это потокобезопасный и сериализуемый вариант.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы