логика сборщика мусора в Java - PullRequest
1 голос
/ 04 февраля 2010

Как мы знаем, сборщик мусора - это Thread в Java. И каждый поток будет иметь свою логику для выполнения. Поэтому я хотел знать, какую логику использует этот сборщик мусора, который так хорошо поддерживает память.

спасибо

Ответы [ 3 ]

1 голос
/ 04 февраля 2010

Объект считается мусором, когда он больше не может быть достигнут из любого указателя в работающей программе. Самые простые алгоритмы сборки мусора просто перебирают каждый достижимый объект. Любые оставшиеся объекты считаются мусором. Время, которое занимает этот подход, пропорционально количеству живых объектов, что непомерно для больших приложений, поддерживающих большое количество живых данных.

Взято из Настройка сборки мусора с помощью виртуальной машины Java [tm] 5.0

0 голосов
/ 16 марта 2013

JVM автоматически повторно собирает память, которая больше не используется. Память для объектов, на которые больше нет ссылок, будет автоматически освобождена сборщиком мусора.

Чтобы увидеть, что сборщик мусора начинает работать, добавьте аргумент командной строки "-verbose: gc" к вашей виртуальной машине.

Подробную статью о сборщике мусора можно найти здесь: Настройка сборки мусора с помощью виртуальной машины Java 5.0

0 голосов
/ 04 февраля 2010

Этот поток часто просыпается и восстанавливает неиспользуемую память. Вы можете взглянуть на алгоритм Mark-and-Sweep . Это также нить демона.

РЕДАКТИРОВАТЬ: Сборщик мусора находит и удаляет объект, который недоступен из основного потока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...