🧩 Как Java загружает классы динамически Java использует механизм ClassLoader, который подгружает классы прямо во время выполнения программы.
Java использует механизм ClassLoader, который подгружает классы прямо во время выполнения программы. Это даёт гибкость - код может загружаться по запросу, подключать модули и расширения на лету.
Как это работает:
• Bootstrap ClassLoader - загружает базовые классы JVM (java.lang, java.util).
• Extension / Platform ClassLoader - подгружает стандартные библиотеки расширений.
• Application / System ClassLoader — загружает классы приложения и внешние зависимости из classpath.
• Можно создать собственные ClassLoader-ы, чтобы загружать классы из БД, по сети, шифрованных файлов и других источников.
Модель делегирования:
Каждый загрузчик сначала спрашивает родителя, и только если он не справился — пытается загрузить класс сам.
Когда класс найден - ClassLoader читает байткод, проверяет его и “определяет” внутри JVM, чтобы его можно было выполнять.
Зачем это нужно?
• плагины
• hot-swap модулей
• модульные системы
• загрузка зависимостей на лету
Система ClassLoader делает Java гибкой, безопасной и расширяемой во время выполнения.