🧩 Как 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 гибкой, безопасной и расширяемой во время выполнения.