В какой момент происходит создание экземпляра Singleton-шаблона?

Создание экземпляра Singleton-шаблона происходит в момент первого обращения к этому экземпляру, если используется ленивый (lazy) способ инициализации.

Короткий ответ

Что ответить на собеседовании

Создание экземпляра Singleton-шаблона происходит в момент первого обращения к этому экземпляру, если используется ленивый (lazy) способ инициализации.

Подробный разбор

Ответ с пояснениями

Создание экземпляра Singleton-шаблона происходит в момент первого обращения к этому экземпляру, если используется ленивый (lazy) способ инициализации.

То есть, объект создаётся при первом вызове метода, который возвращает экземпляр Singleton, например, getInstance(). Это позволяет отложить создание объекта до момента необходимости, экономя ресурсы.

Пример ленивой инициализации Singleton в Android/Java:

public class Singleton {
    private static Singleton instance;

    private Singleton() {
        // приватный конструктор
    }

    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

Если же используется инициализация при загрузке класса (eager initialization), то экземпляр создаётся сразу при загрузке класса, до первого обращения.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку