ΠΡΡΠΎΡΠ½ΠΈΠΊ: Medium
ΠΠ°Π½Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ³Π»ΡΠ±ΠΈΡΡΡΡ Π² Π½ΡΠ°Π½ΡΡ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Java, ΠΈΠ·ΡΡΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΡ
ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π² Java ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π°Π΄Π΅ΠΆΠ½Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ°, ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΡΡΠ°ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π’Π°ΠΊΠΈΠ΅ ΡΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ Π½Π° Π½ΠΈΡ
Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΡΠ»Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΈ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ±ΠΎΡΡΠΈΠΊΡ ΠΌΡΡΠΎΡΠ° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΈΡ
ΠΏΠ°ΠΌΡΡΡ. Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΡΠ΅ΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π°ΠΆΠ΅ ΠΊ Π΅Π³ΠΎ ΡΠ±ΠΎΡ ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΊΠΈ OutOfMemoryError.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ΅ΡΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ Π² Java
Π£ΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π² Java β ΡΠ·ΡΠΊΠ΅, ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΌ ΡΠ²ΠΎΠ΅ΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΎΠΉ ΠΌΡΡΠΎΡΠ°, Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π΅ΠΌΠ°Π»ΠΎ Ρ Π»ΠΎΠΏΠΎΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ·ΡΠΊΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ, Java Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°. ΠΡΠΈ ΡΡΠΎΠΌ Π²Π°ΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΡΠΈΡΠΊΠ° ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ. Π£ΡΠ΅ΡΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ β ΡΡΠΎ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π° Π½ΠΈΡ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΈΡΡΠΈΡΡ ΡΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ.ΠΡΠΈΡΠΈΠ½Ρ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΡΠΈΠ½ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π² Java β ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ ΠΊ ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ. ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ΅ΡΠ΅ΠΊ:- Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π² Java ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ, Π° Π½Π΅ Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠΊΠ° ΡΠ»ΡΠΆΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Ρ Π½ΠΈΠΌΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π±Π΅Π· ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΠ΅Π»ΠΈ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ (Listeners ΠΈ Callbacks). Π Java, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΈΠ»ΠΈ ΡΠ΅Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Ρ (observer), ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΠ΅Π»ΠΈ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ. ΠΡΠ»ΠΈ ΡΡΠΈ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΠ΅Π»ΠΈ Π½Π΅ ΠΎΡΠΌΠ΅Π½ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ, ΡΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ±ΠΎΡΡ ΠΌΡΡΠΎΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π° ΡΡΠΎ ΡΠΎΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΠ΅ΡΠΊΠ°ΠΌ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΡΡΠΈΡΡΡΡΡΡ ΠΈ Π½Π΅ ΡΠ΄Π°Π»ΡΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ, ΠΌΠΎΠ³ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΠ΅ΡΠΊΠ΅.
- ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΊΠ°ΠΊ HashMap ΠΈΠ»ΠΈ ArrayList, ΠΈΠΌΠ΅ΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Java. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΠ΅ΡΠΊΠ°ΠΌ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΎΡΡΠ°Π½ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π½Π° Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΡΠΎΠΊ.
- ΠΠ΅Π·Π°ΠΊΡΡΡΡΠ΅ ΡΠ΅ΡΡΡΡΡ. Π’Π°ΠΊΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ Π·Π°ΠΊΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΠ΅ΡΠΊΠ°ΠΌ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΠΊΡΡΡΡΠΉ ΡΠ΅ΡΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ, ΡΡΠ° ΠΏΠ°ΠΌΡΡΡ ΠΎΡΡΠ°Π΅ΡΡΡ Π·Π°Π½ΡΡΠΎΠΉ.
- ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ. ΠΠ΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π΅ΡΠ²Π½ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ²ΠΎΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ»Π°ΡΡ. ΠΡΠ»ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΡΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π½Π΅ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΠ²ΠΎΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ°ΠΊ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΡΡΠ΅ΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π² Java ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ . ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ ΡΠ°ΠΊΠΈΡ ΡΡΠ΅ΡΠ΅ΠΊ:- Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ ΡΠ±ΠΎΡΡΠΈΠΊΡ ΠΌΡΡΠΎΡΠ° ΡΡΠΆΠ΅Π»Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
- Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π±Π΅Π· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΡΠ΅ΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ.
- Π‘Π±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ°ΡΡΠΎ. Π’Π°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠ°ΠΊ JConsole ΠΈΠ»ΠΈ VisualVM, ΠΌΠΎΠ³ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠ°ΡΡΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΡΠ±ΠΎΡΡ ΠΌΡΡΠΎΡΠ°, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π²ΠΎΠΆΠ½ΡΠΌ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ OutOfMemoryError. ΠΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ²Π½ΡΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠ·-Π·Π° ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ½Π°Π»ΠΈΠ· ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π°Π»ΠΈΠ· Π΄Π°ΠΌΠΏΠ° ΠΊΡΡΠΈ. ΠΠ°ΠΌΠΏ ΠΊΡΡΠΈ β ΡΡΠΎ ΡΠ½ΠΈΠΌΠΎΠΊ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. Π’Π°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠ°ΠΊ Eclipse Memory Analyzer (MAT) ΠΈΠ»ΠΈ VisualVM, ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°ΠΌΠΏΡ ΠΊΡΡΠΈ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ ΡΡΡΠ»ΠΊΠΈ, ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ±ΠΎΡΡ ΠΌΡΡΠΎΡΠ°. ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ JProfiler ΠΈΠ»ΠΈ YourKit Java Profiler. ΠΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠ±ΠΎΡΠΊΡ ΠΌΡΡΠΎΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ. ΠΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π² Java ΡΡΠ΅Π±ΡΠ΅Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Java ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡΡ, Π·Π½Π°Π½ΠΈΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ. Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΈ ΡΠΈΠΌΠΏΡΠΎΠΌΡ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π² Java
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π² Java β Π²Π°ΠΆΠ½Π΅ΠΉΡΠ°Ρ Π·Π°Π΄Π°ΡΠ° Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΡΡΠ°ΡΡΡΡ Π΄Π»Ρ Π½Π°Ρ, ΡΠ΅ΠΉΡΠ°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²ΡΡΠ²Π»ΡΡΡ ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΅ΡΠΊΠΈ. ΠΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²Π°ΡΡΠΈΡΡΡΡΡΡ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π² JDK, Π΄ΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.VisualVM
VisualVM β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ Java, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ JDK ΠΈ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ½ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Oracle JDK.ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
- ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
- ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π΄Π°ΠΌΠΏΡ ΠΊΡΡΠΈ Π΄Π»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΊΡΡΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
VisualVM ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠ»ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΡΡΠΈ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΎΠΉ ΠΌΡΡΠΎΡΠ°, Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡΠ΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΡΠ΅ΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ.Eclipse Memory Analyzer (MAT)
Eclipse MAT β ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°ΠΌΠΏΠΎΠ² ΠΊΡΡΠΈ. ΠΠ½ Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π΄Π»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ.ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
- ΠΠ½Π°Π»ΠΈΠ· Π±ΠΎΠ»ΡΡΠΈΡ Π΄Π°ΠΌΠΏΠΎΠ² ΠΊΡΡΠΈ.
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Π΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΡΡΠ΅ΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΠΎΡΡΠ΅ΡΡ ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°ΠΌΠΏΠ° ΠΊΡΡΠΈ ΠΈΠ· ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π² JVM ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅ OutOfMemoryError), MAT ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΡΠΎΠ³ΠΎ Π΄Π°ΠΌΠΏΠ°. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ.JProfiler
JProfiler β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Java Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π½ΠΎ ΠΎΠ½ ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΌΡ Π°Π½Π°Π»ΠΈΠ·Ρ.ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
- ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
- Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΊΡΡΠΈ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΊΡΡΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
JProfiler ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, Π³Π΄Π΅ Π² ΠΊΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π°Π΄Π°ΡΠΈ, ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡ.Java-ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊ YourKit
YourKit β Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΠΎΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΠ°ΠΊ ΠΈ ΠΏΠ°ΠΌΡΡΠΈ.ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
- ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠ°ΠΊ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ° Ρ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ JProfiler, YourKit ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΡΡΠΈ.Java Flight Recorder (JFR) ΠΈ Java Mission Control (JMC)
Java Flight Recorder ΠΈ Java Mission Control β ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΠΏΠ°ΠΊΠ΅Ρ Oracle JDK. JFR ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΡΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Java, Π° JMC β Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ .ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
- Π‘Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠΌΠΈ ΡΠ°ΡΡ ΠΎΠ΄Π°ΠΌΠΈ.
- ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΡΠΎΠ±ΡΠ°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
- ΠΠΎΠ»Π΅Π·Π½ΠΎ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
JFR ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JMC, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΡΠ²ΠΈΡΡ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠ±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π·Π°ΡΠ°ΡΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠ°ΠΊ VisualVM ΠΈ Eclipse MAT, ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΠ³Π»ΡΠ±Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΠ°ΠΌΡΡΡΡ, ΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ JProfiler ΠΈ YourKit, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΎΠ±Π·ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Java Flight Recorder ΠΈ Java Mission Control ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΠ΅Π΄Π°Ρ . ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠΌΠΎΡΡ Π² ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ, Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΈ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠΈ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Java.ΠΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°ΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π² Java
ΠΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π² Java ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠ°ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π₯ΠΎΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ, Π»ΡΡΡΠ΅ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ½ΡΡΡ ΠΏΠΎΠ½ΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠΌΠΎΠ³ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΠΈ Π»ΡΡΡΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΠΊ:ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ: ΡΠ΅ΡΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΠΉΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ.
- ΠΡΠΈΠΌΠ΅Ρ: ΠΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌΡ ΡΠΈΠΊΠ»Ρ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ ΡΠ±ΠΎΡΡ ΠΌΡΡΠΎΡΠ° ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°. ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ.
- ΠΡΠΈΠΌΠ΅Ρ: Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΎΡΠΈΡΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π°Π»ΡΠ΅Ρ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ: Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠΌΠ΅Π½ΡΠΉΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ.
- ΠΡΠΈΠΌΠ΅Ρ: Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Android ΠΎΡΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ broadcast-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ onDestroy(), ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΡΠ΅ΡΠΊΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ: ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡΠ°ΠΊΡΠΈΠΊΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΡ. ΠΠ³ΡΠ°Π½ΠΈΡΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΡΡΠ΅ΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΡΠ³ΠΊΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ»Π°Π±ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ.
- ΠΡΠΈΠΌΠ΅Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ java.lang.ref.WeakReference Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΊΡΡΠ°, ΡΡΠΎΠ±Ρ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
Π Π°Π·ΡΠΌΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ: Π±ΡΠ΄ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ. Π£Π΄Π°Π»ΡΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ.
- ΠΡΠΈΠΌΠ΅Ρ: Π² ΡΠ°ΠΉΠ»Π΅ HashMap Π²ΡΠ΅Π³Π΄Π° ΡΠ΄Π°Π»ΡΠΉΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΡΡΠ° ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ.
ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°Ρ
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ: Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ. ΠΠ΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π΅ΡΠ²Π½ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΠ²ΠΎΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².
- ΠΡΠΈΠΌΠ΅Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΆΠΈΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΊΡΡΠ²Π°ΠΉΡΠ΅ ΡΠ΅ΡΡΡΡΡ
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ: Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΊΡΡΠ²Π°ΠΉΡΠ΅ ΡΠ΅ΡΡΡΡΡ (ΡΠ°ΠΉΠ»Ρ, ΠΏΠΎΡΠΎΠΊΠΈ, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ) ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
- ΠΡΠΈΠΌΠ΅Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ try-with-resources Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ.
Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΡΠΉΡΠ΅
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ: ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
- ΠΡΠΈΠΌΠ΅Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠ°ΠΊ VisualVM ΠΈΠ»ΠΈ JProfiler, Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΡΡΠΈ ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΠ΄-ΡΠ΅Π²ΡΡ ΠΈ ΠΏΠ°ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ: ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΅Π°Π½ΡΡ ΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π²ΡΡΠ²ΠΈΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΡΠ°Π½Π½Π΅ΠΉ ΡΡΠ°Π΄ΠΈΠΈ.
- ΠΡΠΈΠΌΠ΅Ρ: ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ, Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ.
ΠΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ: Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΡΠΈΠΌΠ΅Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠ°ΠΊ JUnit, Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ.