TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #2133 2.52K
Java-совет: используй WeakHashMap для кэширования в случаях, когда ключи мапы без внешних ссылок должны автоматически удаляться сборщиком мусора.

❌В HashMap, пока сама мапа существует, ключи и связанные с ними значения не будут удалены сборщиком мусора.

✅В WeakHashMap ключи хранятся через weak-ссылки. Если на ключ больше нет strong-ссылок в других местах программы, GC может его собрать, и он будет автоматически удалён из мапы.

Пример:

Map<User, String> map = new WeakHashMap<>();

User u1 = new User("Mick");
map.put(u1, "Cached data");
...
u1 = null;

// С этого момента ключ u1 может быть удалён сборщиком мусора.


👉 Java Portal
  • 👍 7
  • ❤ 4
More from @java_iibrary
  1. Sep 26, 2026Java: используйте Deque вместо Stack для работы по принципу LIFO («последним пришёл — перв…
  2. Sep 25, 2026Каждый Java-разработчик использует HashMap. Но задумывались ли вы… Почему его ёмкость всег…
  3. Sep 25, 2026Бесплатные ресурсы для изучения Java Конспект Effective Java — HugoMatilla/Effective-JAVA-…
  4. Sep 24, 2026Многие разработчики используют Java каждый день. Но мало кто знает, почему он стал одним и…
  5. Sep 24, 2026Java-разработчики, в чём разница между volatile и synchronized? Многие используют их. Но в…
  6. Sep 23, 2026Готовимся к System Design интервью уровня Middle и Senior Полезный конспект по проектирова…
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 →