1. Обзор
В этой статье мы рассмотрим WeakHashMap
из пакета java.util
.
Чтобы понять структуру данных, мы воспользуемся ею здесь, чтобы развернуть простую реализацию кэша. Однако имейте в виду, что это предназначено для понимания того, как работает карта, и создание собственной реализации кэша почти всегда является плохой идеей.
Проще говоря, WeakHashMap
— это основанная на хеш-таблицах реализация интерфейса Map
с ключами типа WeakReference
.
Запись в WeakHashMap
будет автоматически удалена, когда ее ключ больше не используется в обычном режиме, а это означает, что нет ни одной ссылки
, указывающей на этот ключ. Когда процесс сборки мусора (GC) отбрасывает ключ, его запись фактически удаляется из карты, поэтому этот класс ведет себя несколько иначе, чем другие реализации Map
.
2. Сильные, мягкие и слабые ссылки