ASTAKHOV_JAVA_LAB
212 subscribers
59 photos
6 videos
1 file
22 links
🚀 Школа чистого кода Сергея Астахова
✔️Освещаю свою историю успеха
✔️Делюсь лайфхаками
✔️Обучаю детей понимать и программировать
✔️Создаю комьюнити
Download Telegram
🔥ClassLoader'ы в Java — разбираем на пальцах

Представьте, что JVM — это библиотека, а ClassLoader'ы — это библиотекари разного уровня доступа.

1️⃣Три уровня библиотекарей:
- Главный хранитель (Bootstrap): Имеет доступ к самым важным книгам (Object, System, String)
- Заместитель (Extension): Работает с дополнительной литературой (jar-ки в jre/lib/ext)
- Дежурный (Application): Ищет книги, которые вы принесли с собой (ваши классы)

2️⃣Как происходит поиск:
Когда вы пишете new MyClass(), JVM:
1. Сначала спрашивает у дежурного
2. Если не находит — идёт к заместителю
3. В крайнем случае обращается к главному хранителю
4. Если книга нигде не найдена — получаете "библиотечную повестку" (ClassNotFoundException)

3️⃣Важные особенности:
Принцип делегирования: всегда спрашивают старших коллег сначала
Уникальность: одна книга = один библиотекарь (иначе конфликт)
Гибкость: можете нанять своего библиотекаря (кастомный ClassLoader)

Почему это важно?
- Безопасность: системные классы защищены
- Гибкость: можно грузить разные версии библиотек
- Контроль: управление процессом загрузки

Простой пример:

ClassLoader loader = MyClass.class.getClassLoader();
System.out.println(loader); // Узнаём, кто загрузил класс


#Java #JVM #ClassLoaders #ПрограммированиеДляДетей #обучаюJava #объясняюпросто #Программисты #Кодинг

P.S. ClassLoader'ы — как хорошие библиотекари: вы их не замечаете, пока всё работает. Но когда что-то ломается — понимаете, насколько они важны!
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥43👍3💯1