TGViewer
Java Java @javatg · 16.7K subscribers
Post #2349 1.1K
💡 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) уже недостаточна - нужна потокобезопасная реализация.
  • 👍 4
  • ❤ 2
  • 🔥 1
  • 😱 1
More from @javatg
  1. Sep 25, 2026⚡️Продвинутый Java-совет: используйте `ClassValue` Если нужно кешировать метаданные отдель…
  2. Sep 24, 2026Kotlin 2.5.0-Beta1 вышел JetBrains выпустила первую бета-версию Kotlin 2.5.0. Главное: - L…
  3. Sep 23, 2026Spring Boot 4: как перенести старые настройки При обновлении добавьте временную зависимост…
  4. Sep 23, 2026⚡️⚡️Joker 2026: что происходит с профессией разработчика Индустрия разработки проходит чер…
  5. Sep 22, 2026🚀 Anthropic представила Claude Opus 5.5 Новая флагманская модель стала сильнее Opus 5, пр…
  6. Sep 22, 2026Как дать ИИ-агенту доступ к корпоративным данным и ничего не сломать 6 октября в 17:00 мск…
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 →