Фантомная ссылка - Phantom reference

А фантомная ссылка это своего рода ссылка в Ява, где память может быть восстановлена. Фантомное упоминание - это одна из сильных сторон или уровней `` не сильный 'ссылка, определенная в языке программирования Java; остальные слабый и мягкий.[1] Фантомные ссылки - это самый слабый уровень ссылок в Java; в порядке от сильнейшего к самому слабому: сильные, мягкие, слабые, фантом.

На объект ссылаются фантомно после того, как он был завершено.

В Java 8 и более ранних версиях ссылка должна быть очищена, прежде чем можно будет освободить память для финализированного референта. Изменение в Java 9[2] позволит немедленно восстановить память из финализированного референта.

Использовать

Фантомные ссылки имеют ограниченное использование, в основном узкое техническое использование.[3] Во-первых, его можно использовать вместо завершить метод, гарантирующий, что объект не будет воскрешен при финализации. Это позволяет собирать мусор для объекта за один цикл, а не ждать второго цикла сборки мусора, чтобы гарантировать, что он не был воскрешен. Второй вариант использования - точно определить, когда объект был удален из памяти (используя в сочетании с ReferenceQueue объект), гарантируя, что его память доступна, например, отложив выделение большого объема памяти (например, большого изображения) до тех пор, пока не будет освобождена предыдущая память.

Смотрите также

Рекомендации

  1. ^ "java.lang.ref (Java Platform SE 8)". Платформа Java ™, Standard Edition 8 Спецификация API. Oracle. Получено 6 августа 2016.
  2. ^ oracle.com, Ким Барретт (28 декабря 2015 г.). "hg: jdk9 / hs-rt / jdk: 8071507: (ref) Удалить фантомную ссылку, как это делают мягкие и слабые ссылки".
  3. ^ Николас, Итан (4 мая 2006 г.). «Понимание слабых ссылок». www.java.net. Архивировано из оригинал 19 августа 2010 г.. Получено 1 октября, 2010.