TGViewer
Java библиотека Java библиотека @javalib · 30.6K subscribers
Post #7698 1.22K
Java: не создавайте тяжёлые объекты раньше времени

Если объект дорогой в создании, но нужен только в редких сценариях, eager initialization может зря тратить время и память.

Вместо этого используйте lazy initialization:

private HeavyAnalyzer analyzer;

private HeavyAnalyzer analyzer() {
if (analyzer == null) {
analyzer = new HeavyAnalyzer();
}
return analyzer;
}


Так HeavyAnalyzer создастся только при первом реальном обращении.
Где особенно полезно:

- кэши;
- API-клиенты;
- тяжёлая конфигурация;
- анализаторы;
- объекты с дорогой инициализацией.
Для более чистого кода можно использовать Supplier, holder pattern или современные lazy-механизмы Java.

Если доступ идёт из нескольких потоков, простая проверка if (analyzer == null) уже недостаточна - нужна потокобезопасная реализация.

Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
  • 🔥 5
  • ❤ 1
  • 👍 1
More from @javalib
  1. Sep 29, 2026Post #7699
  2. Sep 29, 2026Post #7697
  3. Sep 28, 2026Post #7696
  4. Sep 28, 2026Во многих приложениях есть такой эндпоинт. Фронтенд удаляет JWT после того, как пользовате…
  5. Sep 28, 2026Почему одни ИИ-агенты помогают разработчикам экономить время, а другие требуют постоянной…
  6. Sep 28, 2026Что такое механизм try-with-resources? Механизм try-with-resources в Java — это конструкци…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →