В информатике , недостижимая память представляет собой блок памяти выделяется динамически , когда программа , которая выделяется память больше не имеет какой - либо достижимый указатель , который ссылается на него. Точно так же недостижимый объект - это динамически выделяемый объект, который не имеет доступной ссылки на него. Неофициально, недостижимая память - это динамическая память, к которой программа не может обратиться напрямую или получить доступ, начав с объекта, которого она может достичь напрямую, а затем следуя цепочке ссылок на указатели.
В реализациях динамического распределения памяти, которые используют сборщик мусора , объекты восстанавливаются после того, как они становятся недоступными. Сборщик мусора может определить, доступен ли объект; любой объект, который определен как недоступный, может быть освобожден. Многие языки программирования (например, Java , C # , D , Dylan ) используют автоматическую сборку мусора.
Напротив, когда память становится недоступной в реализациях распределения динамической памяти, которые требуют явного освобождения, память больше не может быть освобождена явно . Недоступная память в системах, использующих ручное управление памятью, приводит к утечке памяти .
Некоторые сборщики мусора реализуют слабые ссылки . Если объект доступен только через слабые ссылки или цепочки ссылок, которые включают слабую ссылку, то объект называетсяслабодоступный . Сборщик мусора может рассматривать слабодоступныйграф объектовкак недостижимый и освобождать его. (И наоборот, ссылки, которые предотвращают сборку мусора, называютсясильными ссылками; слабодоступный объект недоступен для любой цепочки, состоящей только из сильных ссылок.) Некоторыеобъектно-ориентированныеязыки сосборкой мусора, такие какJavaиPython, имеют слабые Рекомендации. ПакетJava java.lang.ref
поддерживает мягкие, слабые и фантомные ссылки, что приводит кмягкимифантомнымсостояниям достижимости дополнительных объектов.
Недоступная память часто связана со старением программного обеспечения .
Внешние ссылки
- Николас, Итан (4 мая 2006 г.). «Понимание слабых ссылок» . java.net . Архивировано из оригинального 19 августа 2010 года . Проверено 1 октября 2010 года . Внешняя ссылка в
|publisher=
( помощь )