Главная » Java » Состояния достижимости и объекты-ссылки Java

0

 

 Объект может быть утилизирован сборщиком мусора только в том случае, если ссылки на него отсутствуют, но иногда желательно, чтобы в сферу влияния процесса попали и такие объекты, которые обладают ссылками определенного вида. Предположим, например, что перед нами поставлена задача создания Web-броузера. Вполне закономерна ситуация, когда какие-то изображения, принадлежащие Web-странице, уже просмотрены пользователем, но в данный момент в окне броузера не видны. Если объем памяти ограничен, мы могли бы освободить некоторую ее часть, сохранив изображения на диске или просто удалив их из памяти, так как позже при необходимости их нетрудно заново затребовать и восстановить на экране. Но поскольку объекты, представляющие изображения, адресуются из кода (и, следовательно, достижимы), они не могут быть удалены. Было бы неплохо иметь ссылку на объект, которая, будучи единственной, не закрепляла бы за объектом статус достижимого. Этой цели служат специальные объекты-ссылки (reference objects).

   Объект-ссылка — это объект, единственным назначением которого является хранение ссылки на другой объект. Вместо задания прямых ссылок на объекты посредством полей или локальных переменных можно использовать объекты-ссылки, выполняющие роль посредников. Сборщик мусора способен определить тот факт, что на объект указывают только объекты-ссылки, и на основании этого "решить", стоит ли его удалять — если объект действительно удаляется, соответствующий объект-ссылка очищается. Тактика сборщика мусора в этом случае определяется степенью прочности ссылки (strength of reference) — наибольшей прочностью обладают обычные ссылки.

 

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии