🔍 Ответ на задачу про WeakHashMap:🧠
В WeakHashMap ключи хранятся как WeakReference. Если на объект-ключ больше никто не ссылается (кроме самой мапы), сборщик мусора имеет право его удалить. Мапа сама заметит исчезновение ключа и удалит соответствующую запись (включая значение).
Вывод:
Запись будет удалена (ответ 2). Это отличное решение для временного хранения метаданных объектов, время жизни которых вы не контролируете.
⚡️ Не перепутайте:
Если вы сделаете слабым значение, а не ключ, мапа работать не будет — WeakHashMap реагирует только на освобождение ключей.
Что произойдет с записью в мапе, если на её КЛЮЧ не осталось сильных ссылок?
Map<Object, String> map = new WeakHashMap<>();
Object key = new Object();
map.put(key, "data");
key = null; //удаляем ссылку
🔍 Ответ на задачу про PhantomReference: 👻
PhantomReference спроектирована так, что её метод get() всегда возвращает null. Её единственная цель — узнать момент, когда объект был окончательно удален из памяти, через специальную очередь ReferenceQueue. Это гораздо безопаснее и гибче, чем устаревший метод finalize().
Вывод:
Код выведет null. Фантомные ссылки используют для очистки ресурсов вне кучи (off-heap memory), когда мы точно знаем, что Java-объект уже "мертв".
⚡️ Не перепутайте:
- WeakReference: удаляется при ближайшей сборке мусора.
- SoftReference: удаляется только при нехватке памяти.
- PhantomReference: объект уже удален, ссылка нужна только для уведомления.
Microsoft разрабатывает собственные ИИ-чипы, NVIDIA усиливает позиции на рынке процессоров, а IT-инфраструктура становится отдельным полем конкуренции технологических гигантов.
За такими новостями интересно следить, даже если ты не работаешь над очередным суперсложным продуктом. Они показывают, куда движется индустрия и что может измениться в работе разработчиков, инженеров и IT-компаний.
Мы с коллегами как раз собрали папку, чтобы интересные источники были под рукой, а не терялись среди случайных рекомендаций.