Этап 7 из 11

JVM и сборка мусора

Основа

Память JVM, устройство объекта, сборщики мусора, загрузка классов и JIT.

JVM — то, что отличает Java-разработчика уровня middle+ от того, кто просто пишет код на Java. Здесь отвечают на вопросы «почему сервис съел всю память», «откуда паузы в 2 секунды», «почему в контейнере OOMKilled».

Темы этапа

Вопросы с собеседований

Смотреть все
Из каких основных областей состоит память JVM и что где хранится?Junior

Куча (heap) — все объекты и массивы, общая для потоков, её чистит GC. Стек — у каждого потока свой: кадры вызовов с локальными переменными и ссылками. Metaspace — метаданные классов, в нативной памяти вне кучи.

Полный разбор
Что такое class loader и как работает делегирование загрузки классов?Middle

ClassLoader находит байт-код и превращает его в класс. Иерархия: Bootstrap (ядро JDK) → Platform (модули платформы) → Application (classpath). Модель parent-first: запрос сначала идёт к родителю, и только если тот не нашёл — загрузчик ищет сам.

Полный разбор
Как выбрать сборщик мусора: Parallel, G1 или ZGC?Senior

Ось выбора — пропускная способность против задержки. Parallel — максимум throughput, паузы растут с кучей: батчи. G1 (по умолчанию с JDK 9) — баланс с целевой паузой MaxGCPauseMillis. ZGC (или Shenandoah) — паузы под миллисекунду почти независимо от размера…

Полный разбор
Чем отличаются JDK, JRE и JVM?Junior

Вложенность: JVM исполняет байткод, JRE = JVM + стандартные библиотеки для запуска, JDK = JRE + инструменты разработки.

Полный разбор
Каков компромисс трёх базовых алгоритмов GC: mark-sweep, mark-compact, copying?Middle

Mark-sweep — пометить живых, освободить остальное: быстро, но фрагментация. Mark-compact — плюс уплотнение живых: нет фрагментации, но перемещение дорого. Copying — копировать живых в пустую область: быстро и без фрагментации, но нужна половина места в…

Полный разбор
Что такое stop-the-world и safepoint в работе GC?Senior

Stop-the-world — пауза, когда все потоки приложения стоят. Останавливаются они в safepoint — точках кода, где JVM точно знает, какие ячейки стека и регистры содержат ссылки, и может безопасно двигать объекты и исправлять ссылки.

Полный разбор

Разборы темы

← Вся карта «Java»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования