Mediumclassloader
Что такое ClassLoader и как он работает?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
ClassLoader загружает .class-файлы в JVM, превращая их в java.lang.Class. Принцип parent-first: запрашивая класс, CL сначала делегирует родителю, и только если тот не нашёл — ищет сам.
Bootstrap ClassLoader (native: java.lang.*, rt.jar / java.base)
↑
Platform ClassLoader (jdk.*, с Java 9; ранее — Extension)
↑
Application ClassLoader (classpath приложения)
↑
Кастомные ClassLoader'ы (Tomcat, плагины, hot-reload)Parent-first даёт безопасность: java.lang.String всегда из core, а не подделка.
Class<?> c = Class.forName("com.example.Foo"); // явная загрузка с инициализацией
Object obj = c.getDeclaredConstructor().newInstance();Фазы: loading → linking (verify, prepare, resolve) → initialization (static-инициализаторы). Кастомные CL нужны для плагинов, hot-reload и изоляции (отдельный CL на webapp в Tomcat).
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.