WeakHashMap — это коллекция, которая позволяет ключам удаляться из неё автоматически, если на них больше нет сильных ссылок.Если ключ в
WeakHashMap становится недостижимым (нет сильных ссылок), он удаляется сборщиком мусора.Это делает WeakHashMap полезной для реализации кэшей и других структур, где нужно избегать утечек памяти.
📌 Пример:
java
import java.util.WeakHashMap;
public class WeakHashMapExample {
public static void main(String[] args) {
WeakHashMap<Object, String> map = new WeakHashMap<>();
Object key = new Object();
map.put(key, "Value");
System.out.println("Before GC: " + map); // Ключ и значение есть
key = null; // Убираем сильную ссылку на объект
System.gc(); // Вызываем сборку мусора
System.out.println("After GC: " + map); // Ключ и значение исчезли
}
}
Пока объект-ключ доступен, пара ключ-значение остаётся в WeakHashMap.
Как только ключ становится недоступным, он автоматически удаляется сборщиком мусора.
✨ Когда использовать?
1️⃣ Кэширование: для хранения данных, которые можно восстановить, если они удалены.
2️⃣ Маппинг вспомогательных данных: например, привязка метаданных к объектам, где их удаление важно.
💡 Совет:
Не используйте WeakHashMap для данных, которые критически важны — сборщик мусора может удалить их в любой момент!
#Java #WeakHashMap
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤷♂2❤1👎1🤩1