TGViewer
Android разработка Android разработка @android_its · 4.88K subscribers
Post #747 1.74K
💡 Java-совет: WeakHashMap для кэша без утечек памяти

Если ты используешь HashMap как кэш - будь осторожен. Пока карта жива, ключи и значения не будут удалены GC, даже если они больше нигде не используются.

WeakHashMap решает эту проблему:

• Ключи хранятся через weak reference

• Если на ключ нет сильных ссылок в коде - GC может его удалить

• Запись автоматически исчезает из мапы

• Отлично подходит для кэшей, метаданных, listener-ов

Пример идеи:

• Положил объект в WeakHashMap

• Убрал на него все обычные ссылки

• GC очистил объект → запись исчезла сама

Когда использовать:

• Кэш, который не должен раздувать память
• Вспомогательные данные, завязанные на жизненный цикл объекта
• Framework-код, плагины, reflection-кэши

Когда не стоит:

• Если ключи должны жить строго контролируемо

• Если логика зависит от стабильного наличия записи

Коротко:
HashMap - контроль у тебя
WeakHashMap — контроль у GC 🧹

Полезный инструмент, если понимаешь его семантику.
  • 👍 5
  • ❤ 3
  • 🔥 1
More from @android_its
  1. Sep 16, 2026🚀 JetBrains обновила roadmap Kotlin: главный фокус - Multiplatform, Wasm и удобство разра…
  2. Aug 23, 2026✔️ Как работают SAM-conversions Single Abstract Method (SAM) интерфейсы — это интерфейсы т…
  3. Aug 23, 2026🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажет…
  4. Aug 19, 2026✔️ Апдейт ChatGPT: изолированный контекст в Projects, тесты для проверки знаний и правки д…
  5. Aug 6, 2026💡 Android/Kotlin: не перезапускайте `Flow` после каждого поворота экрана Частая ошибка в…
  6. Aug 4, 2026🔥 JetBrains открыла исходники KotlinLLM - Kotlin-код, который дописывает себя во время вы…
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 →