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

Откуда нужно начинать строить Garbage Collector

Начинать построение GC следует с анализа требований к приложению: latency, throughput, memory footprint.

Основные шаги:

  1. Выбор стратегии (mark-sweep, generational, concurrent и т.д.)
  2. Определение корней (стек, статические поля, JNI references)
  3. Реализация обхода графа объектов (например, mark phase)
  4. Очистка памяти (sweep, compact или copy)

Пример минимального mark-sweep:

java
void mark(Object obj) {
    if (obj == null || obj.isMarked()) return;
    obj.setMarked(true);
    for (Object ref : obj.getReferences()) {
        mark(ref);
    }
}

void sweep() {
    for (Object obj : heap) {
        if (!obj.isMarked()) free(obj);
        else obj.setMarked(false);
    }
}

Важно учитывать stop-the-world паузы, параллелизм и безопасность потоков.

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

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

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

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