Π’Π΅Π·ΠΈΡΡ
- Class Loader Subsystem β ΡΠ°ΡΡΡ JVM, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½Π°Ρ Π·Π° Π·Π°Π³ΡΡΠ·ΠΊΡ, ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².
- Π₯ΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² (Class Files) Π² ΠΏΠ°ΠΌΡΡΡ.
- Π‘Π±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° Π·Π΄Π΅ΡΡ Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ
OutOfMemoryException
ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠΎΠ² βΠ½Π° Π»Π΅ΡΡβ. - ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°ΠΏΡ ΡΠ°Π±ΠΎΡΡ: Π·Π°Π³ΡΡΠ·ΠΊΠ°, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².
- ΠΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ Classloader, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³ΠΈΠ±ΠΊΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ².
Class Loader Subsystem β ΡΡΠΎ ΡΠ°ΡΡΡ JVM, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ΄Π΅ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ»Π°ΡΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ Π² ΠΏΠ°ΠΌΡΡΡ. ΠΠ½ Π±Π΅ΡΠ΅Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² (Class Files) ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° Π² ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ JVM Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠΎΠ² βΠ½Π° Π»Π΅ΡΡβ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΈΡΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ OutOfMemoryException
.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°ΠΏΡ ΡΠ°Π±ΠΎΡΡ Class Loader Subsystem
- ΠΠ°Π³ΡΡΠ·ΠΊΠ° (Loading): ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Class Loader Subsystem Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠ°ΠΉΠ»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Classloader (Bootstrap, Extension, Application), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ.
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° (Verification): ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ JVM ΠΈΠ»ΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ±ΠΎΡΠΌ. ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π°Π½Π°Π»ΠΈΠ· ΡΡΡΡΠΊΡΡΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ Java ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ΅ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
- Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ (Linking): ΠΡΠΎΡ ΡΡΠ°ΠΏ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²:
- ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° (Preparation): Π‘ΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ Π½ΠΈΡ , Π½ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
- Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (Resolution): Π Π°Π·ΡΠ΅ΡΠ°ΡΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΡΠΎΠ±Ρ JVM ΠΌΠΎΠ³Π»Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ.
- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ (Initialization): ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΡΠΎ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠΉ ΡΡΠ°ΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠ»Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ΅ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
ΠΠ±Π»Π°ΡΡΡ:: 00 Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
Π ΠΎΠ΄ΠΈΡΠ΅Π»Ρ:: ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° JVM
ΠΡΡΠΎΡΠ½ΠΈΠΊ::
ΠΠ²ΡΠΎΡ::
Π‘ΠΎΠ·Π΄Π°Π½Π°:: 2023-11-06