Java Geek
Kanalga Telegramβda oβtish
ΠΡΠ°ΠΊΡΠΈΡΠ½ΡΠ΅ ΡΠΎΠ²Π΅ΡΡ, Π»Π°ΠΉΡΡ Π°ΠΊΠΈ ΠΈ ΠΊΠΎΠ΄ Π΄Π»Ρ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΡ β ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ»ΡΠ·Π°. Π£ΡΠΈΠΌ Java Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ . ΠΠΎ Π²ΡΠ΅ΠΌ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ @evgenycarter
Ko'proq ko'rsatish2 380
Obunachilar
-124 soatlar
-127 kunlar
-3530 kunlar
Postlar arxiv
2 379
Selector
ΠΠ»Π°ΡΡ Selector ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅Π³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ Selector ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΠ°Π½Π°Π»ΠΎΠ² (ΡΠΎΠΊΠ΅ΡΠΎΠ², ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ
ΠΊΠ°Π½Π°Π»ΠΎΠ²) ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡ
ΡΠΎΠ±ΡΡΠΈΡ (Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡ ΠΊ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ).
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Selector:
β Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΠ°Π½Π°Π»ΠΎΠ² Π² Selector Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°.
β ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ ΡΡΠ΅Π½ΠΈΡ, Π·Π°ΠΏΠΈΡΠΈ.
β ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π³ΠΎΡΠΎΠ²ΡΡ
ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π½ΠΈΠΌΠΈ.
β ΠΡΠΌΠ΅Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π² Selector.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Selector ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Π°ΠΌ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
ΠΠ»Π°ΡΡ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅ΡΠ΅Π²ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
Π΄Π»Ρ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅.
π @java_geek
2 379
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ finalize? ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½?
finalize() β ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ° Π² Java.
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΠΊΡΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
Π€ΠΈΠ½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ΅ΡΡΡΡΡ Π΄Π°ΠΆΠ΅ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π·Π°Π±ΡΠ» ΡΠ²Π½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΊΡΡΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π»ΡΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Π½Π΅Π³ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π²ΡΠ·ΠΎΠ²Π΅Ρ Π΅Π³ΠΎ.
ΠΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ²Π½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ ΡΠ΅ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ try-finally Π±Π»ΠΎΠΊΠΎΠ².
π @java_geek
2 379
StringBuilder
StringBuilder β ΡΡΠΎ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ StringBuffer. API ΠΊΠ»Π°ΡΡΠ° StringBuilder ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ StringBuffer, ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Ρ
ΡΠ°Π½ΠΈΡ ΡΡΡΠΎΠΊΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ StringBuffer, StringBuilder Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ. ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΡΡΡΡΠ΅Π΅ Π·Π° ΡΡΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π΅ΠΌΠΊΠΎΡΡΡ buffer'Π° Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ Π΅ΠΌΠΊΠΎΡΡΡ, ΠΎΠ½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ.
π @java_geek
2 379
ByteBuffer
ByteBuffer ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°ΠΉΡΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΠ°ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π±Π°ΠΉΡΡ Π² Π±ΡΡΠ΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
β Π§ΡΠ΅Π½ΠΈΠ΅/Π·Π°ΠΏΠΈΡΡ Π±Π°ΠΉΡΠΎΠ²ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ΅ΡΠ΅Π²ΡΡ
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ². ByteBuffer ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π±Π΅Π· ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
β ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π°ΠΉΡΠ°ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΌΠΈ (int, float), ΡΠ°ΠΊ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ. ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±Π°ΠΉΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² Π±Π°ΠΉΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
β ΠΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΠ΅ Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ByteBuffer ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π΄Π°ΠΆΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΎΠ±ΡΠ΅ΠΌΠΎΠ² Π΄Π°Π½Π½ΡΡ
.
β ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π±Π°ΠΉΡΠΎΠ²ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠΊΠ° Π±Π°ΠΉΡ. ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΈΡΠ°ΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π±ΡΡΠ΅Ρ.
β ΠΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ Β«ΠΏΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡΒ» Π±Π΅Π· ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Β«Π²ΠΈΠ΄Β» Π½Π° ΡΠ°ΡΡΡ Π±ΡΡΠ΅ΡΠ°.
π @java_geek
2 379
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ?
Π Java ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π²ΡΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
β ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ°ΡΡΠΈΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² β ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π² ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² Π½ΡΠΆΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ.
β ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎΡΠΈΠ΅ΠΌ. ΠΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎΡΠΈΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΏΠ°. ΠΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Π² Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ Ρ ΡΠ°Π·Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ. ΠΡΠΎ ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
π @java_geek
2 379
ListIterator
ListIterator β ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Iterator, ListIterator ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π² ΠΏΡΡΠΌΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, Π½ΠΎ ΠΈ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ.
ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΠΏΠ΅ΡΠ΅Π΄ ΠΈ Π½Π°Π·Π°Π΄ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡ.
ListIterator ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ:
β next(): ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
β previous(): ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
β hasNext(): ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, Π΅ΡΡΡ Π»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
β hasPrevious(): ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, Π΅ΡΡΡ Π»ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
β add(): Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΏΠΈΡΠΎΠΊ.
ListIterator ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡ Π² ΠΎΠ±ΠΎΠΈΡ
Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΏΡΡΠΌΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π° Π·Π°ΡΠ΅ΠΌ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ. ΠΠ»ΠΈ ΡΡΠΎΠ±Ρ Π²ΡΡΠ°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΡΠΏΠΈΡΠΊΠ°.
π @java_geek
2 379
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Exception.
Π ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°Ρ
ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ. Π ΡΠ°ΠΌΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ Exception Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΠ°ΡΠ°ΡΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΈ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ toString().
π @java_geek
2 379
ΠΠΎΡΠ΅ΠΌΡ Map Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Collection?
ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Map ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Collection ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡ
ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² Map ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ ΠΊΠ»ΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² Collection, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ, Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΌΡΡΠ»Π° Π΄Π»Ρ Map.
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π² Map ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠΈ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ put(), get(), containsKey() ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Map ΠΎΡ Collection ΠΏΡΠΈΠ²Π΅Π»ΠΎ Π±Ρ ΠΊ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
π @java_geek
2 379
ΠΠΎΡΠ΅ΠΌΡ ΡΡΡΠΎΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π² HashMap Π² Java?
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΠΎΠΊΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ, ΠΈΡ
Ρ
ΡΡ ΠΊΠΎΠ΄ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΈ ΠΊΡΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, Π½Π΅ ΡΡΠ΅Π±ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ΅ΡΠ° ΠΏΡΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ° HashMap ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅.
π @java_geek
2 379
System.arraycopy
System.arraycopy ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π² Π΄ΡΡΠ³ΠΎΠΉ. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ System.arraycopy:
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π²ΠΊΠ»ΡΡΠ°ΡΡ:
src: ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
srcPos: ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΡΠ½Π΅ΡΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
dest: Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ², Π² ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
destPos: ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΡΠ΅Π»Π΅Π²ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΊΡΠ΄Π° Π±ΡΠ΄ΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
length: ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ.
π @java_geek
2 379
ConcurrentSkipListSet
ConcurrentSkipListSet β ΡΡΠΎ thread-safe ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ skip list.
ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² Π½Π΅ΠΌ Ρ
ΡΠ°Π½ΡΡΡΡ Π² ΡΠ±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΠΈ, ΠΏΠΎΡ
ΠΎΠΆΠ΅ΠΉ Π½Π° ΡΠ²ΡΠ·Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ, ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ unicity ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΠΏΠΎΡΡΠ΄ΠΊΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΡ. ΠΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ.
ΠΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ/ΡΠ΄Π°Π»Π΅Π½ΠΈΡ/ΠΏΠΎΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΡΠ°Π·Π½ΡΡ
ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ Π»ΡΡΡΠ΅ ΡΠ΅ΠΌ synchronized Set ΠΏΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠΎΡΠΎΠΊΠΎΠ².
ConcurrentSkipListSet ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΡΡΡΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎΠΈΡΠΊΠ°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ, ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π·Π° Π²ΡΠ΅ΠΌΡ O(log n), ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
π @java_geek
2 379
BufferedInputStream
BufferedInputStream β ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ FilterInputStream, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ (Π±ΡΡΠ΅ΡΠΈΠ·ΡΠ΅Ρ) Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π² Π±ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, Π΄Π΅Π»Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠΎΡΠΎΠΊΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΠΈ Π±ΡΡΡΡΡΠΌΠΈ.
BufferedInputStream ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°, ΡΠΌΠ΅Π½ΡΡΠ°Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅Π½ΠΈΠΉ Ρ Π΄ΠΈΡΠΊΠ° ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Π°, Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π²ΠΎΠΊΡΡΠ³ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ FileInputStream Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° test.txt. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΡΡΠΎΡ ΠΏΠΎΡΠΎΠΊ Π² BufferedInputStream, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΡΠ΅Π½ΠΈΡ. ΠΡ ΡΠΈΡΠ°Π΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π°ΠΉΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π½ΠΈΡ ΠΌΡ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ ΠΎΠ±Π° ΠΏΠΎΡΠΎΠΊΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» test.txt ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠΎΠΊΡ Β«ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!Β». Π’ΠΎΠ³Π΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
π @java_geek
2 379
Π§ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ Π΅ΡΠ»ΠΈ Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ° Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ΄ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅?
Π ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ±ΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ race condition ΠΈΠ»ΠΈ deadlock.
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΠΊΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΡ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ, ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ-ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈΠ· java.util.concurrent.
ΠΠ°ΠΆΠ½ΠΎ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ΄ΡΠΌΡΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. Π₯ΠΎΡΠΎΡΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
π @java_geek
2 379
Π£Π·Π½Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π·Π°Π΄Π°Π΅ΠΌ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° listFiles(), Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° length ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ°ΠΉΠ»ΠΎΠ².
π @java_geek
2 379
ΠΠ΅ΡΠΎΠ΄ insert()
ΠΠ΅ΡΠΎΠ΄ insert() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΏΠΈΡΠΎΠΊ Π² Π·Π°Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ. ΠΠ½ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ List ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ArrayList.
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ element ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ index ΠΈ ΡΠ΄Π²ΠΈΠ³Π°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΠΏΡΠ°Π²ΠΎ.
*ΠΠ½Π΄Π΅ΠΊΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ 0.
*ΠΡΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠ΅Π½ΡΡΠ΅ 0 ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΏΠΈΡΠΊΠ°, Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
π @java_geek
2 379
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ let
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ let ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π² Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°.
ΠΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ.
let ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π·Π°Π³ΡΡΠ·Π½Π΅Π½ΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΈΠΌΠ΅Π½ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, let ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅. ΠΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Π½ΡΠΆΠ½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ.
π @java_geek
2 379
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Run-Time Data Areas?
Run-Time Data Areas β ΡΡΠΎ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Java Virtual Machine Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ
ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ
ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ
ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Java Virtual Machine ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π²ΡΡ
ΠΎΠ΄Π΅ ΠΈΠ· Java Virtual Machine.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π°Π½Π½ΡΡ
ΠΊΠ°ΠΊ:
1. Class Area β ΠΎΠ±Π»Π°ΡΡΡ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ°, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ ΠΏΠΎΠ»Ρ, Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ Ρ. Π΄.
2. Heap β Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
3. Stack β Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΡΡ
ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ². Π‘ΡΠ΅ΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ°Π΄ΡΡ ΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
4. PC Registers β ΡΠ΅Π³ΠΈΡΡΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π°Π΄ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ JVM Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ.
π @java_geek
2 379
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ UnaryOperator
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ UnaryOperator ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°, ΡΡΠΎ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
ΠΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, Π²Ρ
ΠΎΠ΄ΡΡΠΈΠΌ Π² ΠΏΠ°ΠΊΠ΅Ρ java.util.function.
UnaryOperator ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² stream API Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΠΎΡΠΎΠΊΠ°.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ UnaryOperator ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊ Π² Π²Π΅ΡΡ
Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° map().
π @java_geek
2 379
ΠΠ»Π°ΡΡ StringJoiner
ΠΠ»Π°ΡΡ StringJoiner ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΈ ΡΡΡΡΠΈΠΊΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ.
StringJoiner ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΡΡΠΎΠΊΡ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ StringJoiner ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π· Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ Π² ΡΡΡΠΎΠΊΡ Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°/ΡΡΡΡΠΈΠΊΡΠ°.
π @java_geek
2 379
ΠΠ΅ΡΠΎΠ΄ before()
ΠΠ΅ΡΠΎΠ΄ before() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π΄Π²ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° Date.
ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΈΠ΄Π΅Ρ Π»ΠΈ ΠΎΠ΄Π½Π° Π΄Π°ΡΠ° ΠΏΠ΅ΡΠ΅Π΄ Π΄ΡΡΠ³ΠΎΠΉ.
ΠΠ΅ΡΠΎΠ΄ before() ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² ΠΊΠ»Π°ΡΡΠ΅ java.util.Date ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ:
boolean before(Date date)
ΠΠ½ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Date Ρ Π΄Π°ΡΠΎΠΉ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ:
β true, Π΅ΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠ°Ρ Π΄Π°ΡΠ° ΠΈΠ΄Π΅Ρ ΡΠ°Π½ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΉ Π΄Π°ΡΡ.
β false, Π΅ΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠ°Ρ Π΄Π°ΡΠ° ΠΈΠ΄Π΅Ρ ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΉ Π΄Π°ΡΡ ΠΈΠ»ΠΈ ΡΡΠΈ Π΄Π°ΡΡ ΡΠ°Π²Π½Ρ.
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
β ΠΡΠΎΠ²Π΅ΡΠΈΡΡ, Π±ΡΠ»ΠΎ Π»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π°ΡΡ.
β ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄Π°Ρ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ±ΡΠ²Π°Π½ΠΈΡ.
β ΠΠ°ΠΉΡΠΈ ΡΠ°ΠΌΡΡ ΡΠ°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΡΠ°ΠΌΡΡ ΠΏΠΎΠ·Π΄Π½ΡΡ Π΄Π°ΡΡ Π² Π½Π°Π±ΠΎΡΠ΅.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄Π²Π΅ Π΄Π°ΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° before() ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΠΈΠ΄Π΅Ρ Π»ΠΈ date1 ΡΠ°Π½ΡΡΠ΅ date2.
Π’Π°ΠΊ ΠΊΠ°ΠΊ date1 ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΡΡ Π΄Π°ΡΡ, ΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ before() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true.
π @java_geek
