Встречается на собеседованиях • сегодня

Как Garbage Collector понимает какие объекты нужно оставить

Garbage Collector (GC) в Java определяет живые объекты через механизм достижимости. Объект считается живым, если на него существует ссылка из корневых точек (GC Roots), таких как:

  • Локальные переменные в стеке
  • Статические поля класса
  • Активные потоки
  • JNI-ссылки

Пример:

java
public class Main {
    static Object staticRef = new Object(); // GC Root (статическое поле)
    
    public static void main(String[] args) {
        Object localRef = new Object(); // GC Root (локальная переменная)
        // ...
    }
}

GC использует алгоритмы (Mark-Sweep, G1 и др.) для:

  1. Mark: Помечает все достижимые объекты от корней
  2. Sweep: Удаляет недостижимые объекты

Объекты без ссылок из корней считаются мусором. Циклические ссылки без внешних связей также удаляются.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы