Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.
Наука · 26 июня 2026 г.
🎯 Как Java находит классы? Под капотом ClassLoader'ов — 26 июня 2026 г. в 06:22:49.938
🎯 Как Java находит классы? Под капотом ClassLoader'ов Сечас покажу вам одну из самых недооценённых тем в мире Java — механизм загрузки классов. Когда ты запускаешь Java-приложение, оно не просто «видит» все классы. За кулисами работает цепочка загрузчиков: 1. Bootstrap ClassLoader Самый базовый. Загружает классы из JDK (rt.jar, java.base, и так далее). На него даже нельзя получить ссылку в коде. 2. Platform ClassLoader (ранее Extension) Загружает модули платформы (jmods), доступные из JDK, но не из java.base. 3. Application ClassLoader Твой лучший друг. Он отвечает за загрузку классов из classpath (например, target/classes и lib/*.jar). Но вот где начинается магия — ты можешь создать собственный ClassLoader и загружать классы в рантайме из файлов, БД или даже сети. Например: ClassLoader customLoader = new URLClassLoader(new URL[]{new File("plugins/").toURI().toURL()}); Class<?> pluginClass = customLoader.loadClass("com.example.PluginImpl"); 💡 Это используется в плагинных системах (например, IntelliJ, Jenkins, Minecraft). Но будь осторожен — неправильная работа с загрузчиками может привести к ClassCastException, даже если классы выглядят одинаково. 👉 @BookJava

