Как работает процесс загрузки класса, когда метод встречает неизвестный класс во время выполнения?

При необходимости JVM разрешает ссылку на тип и обращается к подходящему class loader, если класс ещё не определён. Затем выполняются необходимые загрузка, линковка и, при активном использовании, инициализация.

Короткий ответ

Что ответить на собеседовании

При необходимости JVM разрешает ссылку на тип и обращается к подходящему class loader, если класс ещё не определён. Затем выполняются необходимые загрузка, линковка и, при активном использовании, инициализация.

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

Ответ с пояснениями

При необходимости JVM разрешает ссылку на тип и обращается к подходящему class loader, если класс ещё не определён. Затем выполняются необходимые загрузка, линковка и, при активном использовании, инициализация.

Обычные загрузчики используют делегирование, но конкретная политика может отличаться у специализированных loaders. Resolution может быть ленивым: наличие ссылки в байткоде не означает немедленную инициализацию. Ошибки поиска через явный API и ошибки связывания при выполнении могут иметь разные типы исключений. Runtime-идентичность класса включает имя и defining loader.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее