Ответ
Ленивая инициализация — это отложенное создание объекта до момента его первого использования. В Android часто применяется для оптимизации производительности, чтобы не тратить ресурсы на создание объектов, которые могут не понадобиться.
Пример с lazy в Kotlin:
val heavyObject: HeavyClass by lazy {
HeavyClass() // создастся только при первом обращении
}
Особенности:
- Потокобезопасна по умолчанию
- Инициализируется один раз
- Можно задать мод (LazyThreadSafetyMode) для многопоточности
Альтернатива — ручная реализация через проверку null и synchronized, но lazy удобнее и безопаснее.