Найти в Дзене
Типы ссылок

Типы ссылок

Различные типы ссылок
подборка · 3 материала
PhantomReference — котики, которых мы помним, но уже не видим
Представьте, что к нам в гости приходил родственник с котиком. И этот котик оставил в нашем доме игрушку. Мы знаем, что котик точно больше не в доме, но его игрушка всё ещё занимает место. Так вот "котик" — это объект, а "игрушка" — это ресурсы или память, которые объект использовал. Фантомная ссылка позволяет нам узнать, что котик (объект) ушёл и игрушку можно убрать. То есть, мы узнаем, что объект уже не используется и скоро будет окончательно удален, поэтому мы можем произвести какие-то действия (закрыть ресурсы, что-то очистить)...
141 читали · 1 год назад
WeakReference — котики, которых можно потерять
WeakReference — это один из типов ссылок (всего их 4), который предназначен для более гибкого управления памятью. Эта ссылка позволяет котику объекту существовать до тех пор, пока на него обращают внимание. Как только он становится никому не нужен и это заметит сборщик мусора, то котик будет удалён. Т.е. WeakReference позволяет нам удерживать объекты в памяти, но при этом не мешает сборщику мусора удалять их, если на объекты больше нет сильных ссылок (стандартный тип ссылки: например, val cat = Cat())...
SoftReference — котики, которые уходят при необходимости
SoftReference — это один из типов ссылок (всего их 4), который предназначен для более гибкого управления памятью. Эта ссылка позволяет котику объекту существовать до тех пор, пока на это есть память. Сборщик мусора его не тронет. Однако, если системе не хватает памяти, объекты, на которые ссылаются SoftReference, будут удалены для освобождения ресурсов (нужно для предотвращения OutOfMemoryError). Это как котики, которые могут уйти, если вам нужно освободить место, но предпочтут остаться, если есть возможность...