Справочные очереди
Как только WeakReference начинает возвращать ноль, объект, на который он указал, стал мусором, а объект WeakReference практически бесполезен. Как правило, это означает, что требуется некоторая очистка; WeakHashMap, например, должен удалить такие несуществующие записи, чтобы избежать удержания постоянно растущего числа мертвых WeakReferences.
Класс ReferenceQueue позволяет легко отслеживать мертвые ссылки. Если вы передадите ReferenceQueue в конструктор слабой ссылки, ссылочный объект будет автоматически вставлен в очередь ссылок, когда объект, на который он указывает, становится мусором. Затем вы можете через некоторый регулярный интервал обрабатывать ReferenceQueue и выполнять любую необходимую очистку для мертвых ссылок.
См. Эту страницу для обучения по использованию.
Не могли бы вы указать, почему вы используете это? Действительного использования очень мало.
то есть кеш не является допустимым (или, по крайней мере, не очень хорошим)
Edit:
Этот код эквивалентен использованию weakHashMap, но вам необходимо явно сделать это, чтобы соотнести очередь с картой.
HashMap aHashMap = new HashMap();
ReferenceQueue Queue = new ReferenceQueue();
MyWeakReference RefKey = new MyWeakReference(key, Queue);
aHashMap.put(RefKey, value);