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

Как Java загружает классы

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

  1. Bootstrap ClassLoader – загружает основные классы Java (из rt.jar и других системных библиотек).
  2. Extension ClassLoader – загружает классы из jre/lib/ext.
  3. Application (System) ClassLoader – загружает классы из classpath.

Порядок загрузки (Delegation Model):

  • Запрос сначала передаётся родительскому ClassLoader.
  • Если родитель не может загрузить класс, текущий загрузчик пытается сделать это сам.

Пример:

java
Class<?> clazz = Class.forName("com.example.MyClass");
// или через ClassLoader
ClassLoader loader = MyClass.class.getClassLoader();
Class<?> clazz = loader.loadClass("com.example.MyClass");

Примечания:

  • Класс загружается только один раз (кешируется в JVM).
  • Можно создавать кастомные ClassLoader для динамической загрузки (например, в плагинах).
  • NoClassDefFoundError возникает, если класс был найден на этапе компиляции, но не во время выполнения.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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