Поскольку Java 9, PhantomReference
(PR) автоматически очищается .То, что вы видите, - это изменение Javadoc, которое происходит в результате этого изменения.
До Java 9 объект, на который ссылается PR, оставался живым, даже если его get()
возвращал null
.Следовательно, до тех пор, пока сам пиар не будет мертв, референт будет технически жив, хотя вы не можете получить ссылку на него.Преимущества такого поведения не очень очевидны.В любом случае, обработка PR была бы «предубойной очисткой».
После Java 9 PR очищается прямо перед постановкой в очередь (как и другие типы слабых / мягких ссылок), сам референт становится полностью мертвым перед PRобрабатывается кодом приложения, который будет являться «посмертной очисткой».