Назад к вопросам
Middle
96
questionbank
Что такое корни сборщика мусора (Garbage Collector Roots)?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Корни сборщика мусора (GC Roots) — это специальные объекты, которые считаются всегда достижимыми и с которых начинается трассировка достижимых объектов в куче. Объекты, недостижимые из корней, считаются мусором и подлежат сборке.
Типичные корни:
- Системные классы: Загрузчики классов, статические поля системных классов.
- Активные потоки: Объекты
Threadдля работающих потоков, их стеки и локальные переменные. - Статические переменные: Статические поля классов.
- JNI ссылки: Объекты, к которым есть ссылки из нативного кода.
- Мониторы: Объекты, на которых используются мониторы (например, блокировки с
synchronized). - JVM Внутренние ссылки: Некоторые объекты, используемые самой JVM.
Пример (псевдокод):
class MyClass {
static String staticField = "I am a root"; // Статическое поле - возможный корень
String instanceField = "I am reachable from a root if the instance is reachable";
public static void main(String[] args) {
MyClass instance = new MyClass(); // Переменная в стеке активного потока - корень
// instance и ее instanceField достижимы.
// Если instance = null; в этот момент, инстанс станет недостижимым
// из корней (если нет других сильных ссылок).
}
}