DEV_EASY_NOTES Telegram 62
​​{1/3} Итак, Classloader. Погнали.

👉 Нужна эта штука как можно догадаться по названию для загрузки классов. Происходит это так. Есть код написанный на языках kotlin/java, затем мы отдаем эти файлы компилятору javac который уже генерирует файлы с расширением .class.

Далее эти файлы упаковываются в jar (или в apk если мы говором про android) что по сути является обычным архивом, просто с другим расширением, чтобы не путать с zip.

🤓 Суть в чем, JVM не загружает сразу все классы, она подгружает их лениво 🦥. Могут быть классы которые так и не подгрузятся JVM, несмотря на то, что они скомпилированны и лежат в jar.

За загрузку классов отвечает специальный класс (мде вот такая вот тавтология)Classloader. Это некоторый волшебный класс, один из тех классов который находится на границе между JVM и нативным кодом.

👉 Когда JVM считает, что ей нужно загрузить определенный класс, она просить Classloader это сделать. Classloader в свою очередь лезет в файловую систему, в сеть, еще куда-нибудь чтобы эти самые классы подгрузить.

Classloader это всего лишь интерфейс, а реализаций может быть много. Например, может быть Classloader который загружает классы по сети, так работали Applet.

☝️Чтобы понять идею того, как вообще работает Classloader, нужно уяснить 3 основных принципа. Представим что у нас есть реализация Classloader Parent, и есть класс наследник который расширяет функционал класса Parent – Child. Child наследует Parent все логично
👍4



tgoop.com/dev_easy_notes/62
Create:
Last Update:

​​{1/3} Итак, Classloader. Погнали.

👉 Нужна эта штука как можно догадаться по названию для загрузки классов. Происходит это так. Есть код написанный на языках kotlin/java, затем мы отдаем эти файлы компилятору javac который уже генерирует файлы с расширением .class.

Далее эти файлы упаковываются в jar (или в apk если мы говором про android) что по сути является обычным архивом, просто с другим расширением, чтобы не путать с zip.

🤓 Суть в чем, JVM не загружает сразу все классы, она подгружает их лениво 🦥. Могут быть классы которые так и не подгрузятся JVM, несмотря на то, что они скомпилированны и лежат в jar.

За загрузку классов отвечает специальный класс (мде вот такая вот тавтология)Classloader. Это некоторый волшебный класс, один из тех классов который находится на границе между JVM и нативным кодом.

👉 Когда JVM считает, что ей нужно загрузить определенный класс, она просить Classloader это сделать. Classloader в свою очередь лезет в файловую систему, в сеть, еще куда-нибудь чтобы эти самые классы подгрузить.

Classloader это всего лишь интерфейс, а реализаций может быть много. Например, может быть Classloader который загружает классы по сети, так работали Applet.

☝️Чтобы понять идею того, как вообще работает Classloader, нужно уяснить 3 основных принципа. Представим что у нас есть реализация Classloader Parent, и есть класс наследник который расширяет функционал класса Parent – Child. Child наследует Parent все логично

BY Dev Easy Notes




Share with your friend now:
tgoop.com/dev_easy_notes/62

View MORE
Open in Telegram


Telegram News

Date: |

Read now Clear A vandalised bank during the 2019 protest. File photo: May James/HKFP. With the “Bear Market Screaming Therapy Group,” we’ve now transcended language. Other crimes that the SUCK Channel incited under Ng’s watch included using corrosive chemicals to make explosives and causing grievous bodily harm with intent. The court also found Ng responsible for calling on people to assist protesters who clashed violently with police at several universities in November 2019.
from us


Telegram Dev Easy Notes
FROM American