Объект становится пригодным для сборки мусора в Java, когда он больше не достижим ни одним активным потоком в приложении. JVM автоматически находит и удаляет такие объекты, освобождая память.
Объект считается недостижимым, когда ни один активный поток не может получить к нему доступ через какую-либо цепочку ссылок. Это происходит когда:
nullОтдельный случай — циклически связанные объекты: экземпляры, которые ссылаются друг на друга по кругу, но на которые нет внешних ссылок. Даже если эти объекты ссылаются друг на друга внутри, они всё равно пригодны для сборки мусора, потому что:
JVM использует анализ достижимости, чтобы определить пригодность объекта для сборки мусора. Объект можно безопасно собрать, если до него невозможно добраться через какую-либо цепочку ссылок, начиная со стека активного потока или статических ссылок. Это касается как отдельных недостижимых объектов, так и целых групп циклически связанных экземпляров, образующих изолированные острова в памяти.
Объект становится доступным для сборки мусора только когда все явные ссылки на него установлены в null, независимо от того, могут ли другие объекты получить доступ к нему через цепочки ссылок.
Новый — ещё не проверен сообществом
Вы