Sobes.tech
Back to questions
Junior — Middle
93

Каким образом можно применить отложенную инициализацию объектов в вашем коде?

Companies where asked
СБЕР дейвайсыСБЕР дейвайсы

Answer from AI

sobes.tech AI

Отложенная инициализация (lazy initialization) в Java применяется для создания объекта только в момент его первого использования, а не при загрузке класса или создании родительского объекта. Это позволяет экономить ресурсы и ускорять старт программы.

Пример реализации с использованием ленивой инициализации и паттерна Singleton:

public class LazySingleton {
    private static LazySingleton instance;

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

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

Также в Java 8+ можно использовать класс java.util.function.Supplier или Optional для ленивой инициализации, либо использовать Lazy<T> из сторонних библиотек.

В многопоточной среде стоит применять синхронизацию или использовать volatile для корректной ленивой инициализации.