Если ты используешь HashMap как кэш - будь осторожен. Пока карта жива, ключи и значения не будут удалены GC, даже если они больше нигде не используются. WeakHashMap решает эту проблему: • Ключи хранятся через weak reference • Если на ключ нет сильных ссылок в коде - GC может его удалить • Запись автоматически исчезает из мапы • Отлично подходит для кэшей, метаданных, listener-ов Пример идеи: • Положил объект в WeakHashMap • Убрал на него все обычные ссылки • GC очистил объект → запись исчезла сама Когда использовать: • Кэш, который не должен раздувать память • Вспомогательные данные, завязанные на жизненный цикл объекта • Framework-код, плагины, reflection-кэши Когда не стоит: • Если ключи должны жить строго контролируемо • Если логика зависит от стабильного наличия записи Коротко: HashMap - контроль у тебя WeakHashMap — контроль у GC 🧹 Полезный инструмент, если понимаешь его семантику.