Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ClassLoader, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠ»Π°ΡΡΡ ΠΏΡΡΠΌΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎ Π΄Π°ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ - ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π»Π΅ΡΡ. ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ: β’ Bootstrap ClassLoader - Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ JVM (java.lang, java.util). β’ Extension / Platform ClassLoader - ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ. β’ Application / System ClassLoader β Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠ»Π°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈΠ· classpath. β’ ΠΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ClassLoader-Ρ, ΡΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΊΠ»Π°ΡΡΡ ΠΈΠ· ΠΠ, ΠΏΠΎ ΡΠ΅ΡΠΈ, ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ². ΠΠΎΠ΄Π΅Π»Ρ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΠ°ΠΆΠ΄ΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΡΠΏΡΠ°Π²ΠΈΠ»ΡΡ β ΠΏΡΡΠ°Π΅ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠ»Π°ΡΡ ΡΠ°ΠΌ. ΠΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡ Π½Π°ΠΉΠ΄Π΅Π½ - ClassLoader ΡΠΈΡΠ°Π΅Ρ Π±Π°ΠΉΡΠΊΠΎΠ΄, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π΅Π³ΠΎ ΠΈ βΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρβ Π²Π½ΡΡΡΠΈ JVM, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ. ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ? β’ ΠΏΠ»Π°Π³ΠΈΠ½Ρ β’ hot-swap ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ β’ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ β’ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π½Π° Π»Π΅ΡΡ Π‘ΠΈΡΡΠ΅ΠΌΠ° ClassLoader Π΄Π΅Π»Π°Π΅Ρ Java Π³ΠΈΠ±ΠΊΠΎΠΉ, Π±Π΅Π·ΠΎΠΏΠ°
π§© ΠΠ°ΠΊ Java Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠ»Π°ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ
ΠΡΠ΅ΡΠ°ΠΡΠ΅ΡΠ°
~1 ΠΌΠΈΠ½