Этот экземпляр является необязательным аргументом конструктора для SoftReference и WeakReference и обязательным аргументом для PhantomReference.
Согласно прочитанной мной информации, я могу написать несколько тезисов
- для метода PhantomReference get всегда возвращает значение null
- для фантомных ссылок:
- gc обнаруживает, что объект может быть удален из памяти
- ссылка на объект, помещенный в ReferenceQueue
когда мы вызываем очистку или ссылку на ссылку из очереди, становится недоступной, и gc видит, что - finalize вызывает методы
- свободная память
- gc обнаруживает, что объект может быть удален из памяти
- вызывает методы завершения
- свободную память
- ссылку на объект, помещенный в очередь
- Когда мне следует передать второй аргумент ссылочному конструктору?
- Какую помощь я могу получить?
- Почему у PhantomReference нет конструктора без ReferenceQueue?
- Какова причина использования ReferenceQueue, методы получения которого всегда возвращают значение null?
Подробнее здесь: https://stackoverflow.com/questions/413 ... rencequeue