Добавить в корзинуПозвонить
Найти в Дзене
Java

🧩 Как Java загружает классы динамически

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

🧩 Как Java загружает классы динамически

Java использует механизм ClassLoader, который подгружает классы прямо во время выполнения программы. Это даёт гибкость - код может загружаться по запросу, подключать модули и расширения на лету.

Как это работает:

• Bootstrap ClassLoader - загружает базовые классы JVM (java.lang, java.util).

• Extension / Platform ClassLoader - подгружает стандартные библиотеки расширений.

• Application / System ClassLoader — загружает классы приложения и внешние зависимости из classpath.

• Можно создать собственные ClassLoader-ы, чтобы загружать классы из БД, по сети, шифрованных файлов и других источников.

Модель делегирования:

Каждый загрузчик сначала спрашивает родителя, и только если он не справился — пытается загрузить класс сам.

Когда класс найден - ClassLoader читает байткод, проверяет его и “определяет” внутри JVM, чтобы его можно было выполнять.

Зачем это нужно?

• плагины

• hot-swap модулей

• модульные системы

• загрузка зависимостей на лету

Система ClassLoader делает Java гибкой, безопасной и расширяемой во время выполнения.

@javarush