Ответ
Ленивая загрузка (lazy loading) — это техника отложенной инициализации объектов или ресурсов до момента их реального использования. Основные преимущества:
- Оптимизация памяти — не загружаем данные, которые могут не понадобиться.
- Ускорение старта — приложение запускается быстрее, т.к. инициализируется только необходимое.
- Эффективность — особенно полезно для больших данных (например, изображения в вебе или тяжелые объекты в Java).
Пример с Supplier для ленивой инициализации:
public class LazyExample {
private Supplier<HeavyObject> heavyObject = () -> createAndCacheHeavyObject();
private HeavyObject createAndCacheHeavyObject() {
HeavyObject instance = new HeavyObject(); // тяжелая инициализация
heavyObject = () -> instance; // заменяем Supplier на кэшированный результат
return instance;
}
public HeavyObject getHeavyObject() {
return heavyObject.get();
}
}