Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ°?
π private β Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
/Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
 ΠΊΠ»Π°ΡΡΠΎΠ²;
π package-private β Π΄ΠΎΡΡΡΠΏ ΠΈΠ· Π²ΡΠ΅Ρ
 ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠ°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° Π½Π΅ ΠΈΠΌΠ΅ΡΡ. ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½;
π protected β Π΄ΠΎΡΡΡΠΏ ΠΈΠ· Π²ΡΠ΅Ρ
 ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ Π²ΡΠ΅Ρ
 Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠ²;
π public β Π½ΠΈΠΊΠ°ΠΊΠΈΡ
 ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ°;
ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ, ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΈ ΠΏΠΎΠ»ΡΠΌ. ΠΠ½ΠΈ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΈ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ API.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Maxπͺ 
ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ, ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΈ ΠΏΠΎΠ»ΡΠΌ. ΠΠ½ΠΈ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΈ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ API.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Max
Please open Telegram to view this post
    VIEW IN TELEGRAM
  β€10π₯5π2
  π 8 ΠΎΠΊΡΡΠ±ΡΡ Π² 20:00 ΠΠ‘Π ΠΏΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ Π½Π° ΠΎΡΠΊΡΡΡΡΠΉ ΡΡΠΎΠΊ OTUS Β«ΠΠ°ΠΊ Π²ΡΡΠ°ΡΡΠΈΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎΒ». ΠΠ° Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ ΠΌΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΠΌ ΠΏΡΠ΅ΡΠΈΠΊΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ (Trie) Π΄Π»Ρ ΡΠ»ΠΎΠ² ΠΈΠ· Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΡΡΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΎΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ Π±ΡΠΊΠ²Π°ΠΌ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° Ρ ΡΡΠΈΠΌ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ ΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠΉ.
Π£ΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π±ΡΡΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
ΠΡΠΊΡΡΡΡΠΉ ΡΡΠΎΠΊ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠ΅Π΄Π΄Π²Π΅ΡΠΈΠ΅ ΡΡΠ°ΡΡΠ° ΠΊΡΡΡΠ° Β«ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Β». ΠΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΊΠΈΠ΄ΠΊΡ Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅.
πΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ Π²ΡΡΠ°ΡΡΠΈΡΡ ΡΠ²ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Trie-Π΄Π΅ΡΠ΅Π²ΠΎ: https://vk.cc/cQ7PSz
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576
Please open Telegram to view this post
    VIEW IN TELEGRAM
  π₯4β€2π2
  ΠΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°
Π‘Π½Π°ΡΠ°Π»Π° ΠΊΠ»Π°ΡΡ ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ, ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ClassLoader ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π² Π±ΡΠ΄ΡΡΠΈΡ ΠΏΠΎΡΡΠ°Ρ . ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΊ Π½Π΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ»ΠΎΠ°Π΄Π΅ΡΠ°.
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π Π±ΡΠ΄ΡΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π»Π΅Π½ΠΈΠ²ΠΎΠΉ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π½ΠΎ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ½Π°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ.
ΠΠ°Π»Π΅Π΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈΡΡΠ΅ΡΡΡ ΡΠ°ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ. ΠΠ°ΠΊ ΠΈ Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π΄Π°Π»ΡΠ½Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ:
1. ΠΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ Π² ΠΊΡΡΠ΅ Π΄Π»Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ;
2. ΠΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ;
3. ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ;
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ β ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² ΠΏΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ.
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅, ΡΠ²ΠΎΠΉΡΡΠ²Π΅Π½Π½Π°Ρ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ². Effective Java Item 17 ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅. ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π²ΡΡΠ΅ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Maxπͺ 
Π‘Π½Π°ΡΠ°Π»Π° ΠΊΠ»Π°ΡΡ ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ, ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ClassLoader ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π² Π±ΡΠ΄ΡΡΠΈΡ ΠΏΠΎΡΡΠ°Ρ . ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΊ Π½Π΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ»ΠΎΠ°Π΄Π΅ΡΠ°.
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π Π±ΡΠ΄ΡΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π»Π΅Π½ΠΈΠ²ΠΎΠΉ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π½ΠΎ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ½Π°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ.
ΠΠ°Π»Π΅Π΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈΡΡΠ΅ΡΡΡ ΡΠ°ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ. ΠΠ°ΠΊ ΠΈ Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π΄Π°Π»ΡΠ½Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ:
1. ΠΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ Π² ΠΊΡΡΠ΅ Π΄Π»Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ;
2. ΠΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ;
3. ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ;
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ β ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² ΠΏΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ.
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅, ΡΠ²ΠΎΠΉΡΡΠ²Π΅Π½Π½Π°Ρ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ². Effective Java Item 17 ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅. ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π²ΡΡΠ΅ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Max
Please open Telegram to view this post
    VIEW IN TELEGRAM
  π11π₯5β€2
  new Integer(128) == 128?
ΠΠ»Ρ Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ²-ΠΎΠ±Π΅ΡΡΠΎΠΊ Π½Π°Π΄ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ ΠΊΡΠΎΠΌΠ΅ Float ΠΈ Double ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°, ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ new (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ valueOf).
ΠΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ β ΠΎΠ±Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Boolean, Character Π΄ΠΎ '\u007f' (127) ΠΈ Π²ΡΠ΅ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° ΠΎΡ -128 Π΄ΠΎ 127 Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ. Π‘ Java 7 Π²Π΅ΡΡ Π½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ Integer ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ java.lang.Integer.IntegerCache.high.
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΊΡΡΠΈΡΡΡΡΡΡ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ : BigDecimal, Currency, ΠΏΡΡΡΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ°Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°Π²Π°ΡΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΈ ΠΊΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ JVM Π° Π² ΠΊΠΎΠ΄Π΅ ΠΊΠ»Π°ΡΡΠΎΠ².
Π ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΊΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Π²ΠΎΡ : ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ°-ΠΎΠ±Π΅ΡΡΠΊΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠΌ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π°Π½Π±ΠΎΠΊΡΠΈΠ½Π³Ρ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ β Π΄Π°.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Maxπͺ 
ΠΠ»Ρ Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ²-ΠΎΠ±Π΅ΡΡΠΎΠΊ Π½Π°Π΄ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ ΠΊΡΠΎΠΌΠ΅ Float ΠΈ Double ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°, ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ new (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ valueOf).
ΠΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ β ΠΎΠ±Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Boolean, Character Π΄ΠΎ '\u007f' (127) ΠΈ Π²ΡΠ΅ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° ΠΎΡ -128 Π΄ΠΎ 127 Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ. Π‘ Java 7 Π²Π΅ΡΡ Π½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ Integer ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ java.lang.Integer.IntegerCache.high.
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΊΡΡΠΈΡΡΡΡΡΡ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ : BigDecimal, Currency, ΠΏΡΡΡΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ°Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°Π²Π°ΡΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΈ ΠΊΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ JVM Π° Π² ΠΊΠΎΠ΄Π΅ ΠΊΠ»Π°ΡΡΠΎΠ².
Π ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΊΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Π²ΠΎΡ : ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ°-ΠΎΠ±Π΅ΡΡΠΊΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠΌ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π°Π½Π±ΠΎΠΊΡΠΈΠ½Π³Ρ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ β Π΄Π°.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Max
Please open Telegram to view this post
    VIEW IN TELEGRAM
  π11π₯4β€1π€―1
  ΠΠΎΠ²ΡΠΉ Yandex Cup β ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠΆΠ΅ ΠΎΡΠΊΡΡΡΠ°
Π―Π½Π΄Π΅ΠΊΡ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π±ΡΠΊΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π° Yandex Cup β ΡΠ΅ΠΌΠΏΠΈΠΎΠ½Π°Ρ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΡΠΈΠ·ΠΎΠ²ΡΠΌ ΡΠΎΠ½Π΄ΠΎΠΌ 12 ΠΌΠ»Π½ ΡΡΠ±Π»Π΅ΠΉ ΠΈ ΡΠΈΠ½Π°Π»ΠΎΠΌ Π² Π‘ΡΠ°ΠΌΠ±ΡΠ»Π΅.
ΠΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΡΠΎΠ±Π½ΡΠΉ ΡΡΡ Π΄Π»Ρ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ, Π° ΠΏΡΠΈΠΌΠ΅ΡΡ Π·Π°Π΄Π°Ρ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅.
ΠΡΠ°ΠΏΡ:
β ΠΏΡΠΎΠ±Π½ΡΠΉ ΡΡΡ 20β29 ΠΎΠΊΡΡΠ±ΡΡ (ΠΎΠ½Π»Π°ΠΉΠ½)
β ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΡ 2 Π½ΠΎΡΠ±ΡΡ (ΠΎΠ½Π»Π°ΠΉΠ½)
β ΡΠΈΠ½Π°Π» Π² Π‘ΡΠ°ΠΌΠ±ΡΠ»Π΅ 5β7 Π΄Π΅ΠΊΠ°Π±ΡΡ (ΠΎΡΠ»Π°ΠΉΠ½)
ΠΡΡΡΠΈΡ ΠΆΠ΄ΡΡ Π΄Π΅Π½Π΅ΠΆΠ½ΡΠ΅ ΠΏΡΠΈΠ·Ρ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΏΠ°ΡΡΡ Π² Π―Π½Π΄Π΅ΠΊΡ ΠΏΠΎ ΡΠ°ΡΡ-ΡΡΠ΅ΠΊΡ.
β’ 1 ΠΌΠ΅ΡΡΠΎ β 500 000 β½
β’ 2 ΠΌΠ΅ΡΡΠΎ β 400 000 β½
β’ 3 ΠΌΠ΅ΡΡΠΎ β 300 000 β½
β’ 4 ΠΌΠ΅ΡΡΠΎ β 200 000 β½
β’ 5 ΠΌΠ΅ΡΡΠΎ β 100 000 β½
Π£ΡΠΏΠ΅ΠΉΡΠ΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎ 29 ΠΎΠΊΡΡΠ±ΡΡ
Π―Π½Π΄Π΅ΠΊΡ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π±ΡΠΊΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π° Yandex Cup β ΡΠ΅ΠΌΠΏΠΈΠΎΠ½Π°Ρ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΡΠΈΠ·ΠΎΠ²ΡΠΌ ΡΠΎΠ½Π΄ΠΎΠΌ 12 ΠΌΠ»Π½ ΡΡΠ±Π»Π΅ΠΉ ΠΈ ΡΠΈΠ½Π°Π»ΠΎΠΌ Π² Π‘ΡΠ°ΠΌΠ±ΡΠ»Π΅.
ΠΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΡΠΎΠ±Π½ΡΠΉ ΡΡΡ Π΄Π»Ρ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ, Π° ΠΏΡΠΈΠΌΠ΅ΡΡ Π·Π°Π΄Π°Ρ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅.
ΠΡΠ°ΠΏΡ:
β ΠΏΡΠΎΠ±Π½ΡΠΉ ΡΡΡ 20β29 ΠΎΠΊΡΡΠ±ΡΡ (ΠΎΠ½Π»Π°ΠΉΠ½)
β ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΡ 2 Π½ΠΎΡΠ±ΡΡ (ΠΎΠ½Π»Π°ΠΉΠ½)
β ΡΠΈΠ½Π°Π» Π² Π‘ΡΠ°ΠΌΠ±ΡΠ»Π΅ 5β7 Π΄Π΅ΠΊΠ°Π±ΡΡ (ΠΎΡΠ»Π°ΠΉΠ½)
ΠΡΡΡΠΈΡ ΠΆΠ΄ΡΡ Π΄Π΅Π½Π΅ΠΆΠ½ΡΠ΅ ΠΏΡΠΈΠ·Ρ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΏΠ°ΡΡΡ Π² Π―Π½Π΄Π΅ΠΊΡ ΠΏΠΎ ΡΠ°ΡΡ-ΡΡΠ΅ΠΊΡ.
β’ 1 ΠΌΠ΅ΡΡΠΎ β 500 000 β½
β’ 2 ΠΌΠ΅ΡΡΠΎ β 400 000 β½
β’ 3 ΠΌΠ΅ΡΡΠΎ β 300 000 β½
β’ 4 ΠΌΠ΅ΡΡΠΎ β 200 000 β½
β’ 5 ΠΌΠ΅ΡΡΠΎ β 100 000 β½
Π£ΡΠΏΠ΅ΠΉΡΠ΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎ 29 ΠΎΠΊΡΡΠ±ΡΡ
π₯4β€3π3
  Π§ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ
ΡΠ°Π½ΡΡΠ΅ΠΉ null?
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΡΠΈΠ½Π°Π»ΡΠ½Π°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ L-value ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° β ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎ-Π²ΡΠΎΡΡΡ , ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ null, Π½ΠΎ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΈΠΏΠ°:
π Π‘ΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Ρ null ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ°;
π ΠΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠΈΠΏΡ-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ (upcast) ΠΈΠ»ΠΈ ΡΠΈΠΏΡ-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΡ (downcast), ΡΡΠΈΡΡΠ²Π°Ρ Π³ΡΠ°Π½ΠΈΡΡ generic-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ;
π ΠΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ»Π΅Π½Π°ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ NullPointerException;
π ΠΡΠΈΠΌΠ΅Π½ΡΡΡ instanceof ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ false
π ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ
 ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ
 Ρ ΡΠΈΠΏΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²
Π-ΡΡΠ΅ΡΡΠΈΡ , ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ»Π΅Π½Π°ΠΌ ΠΊΠ»Π°ΡΡΠ°. Π Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ. ΠΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ, NullPointerException Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ, Π½ΠΎ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅Π½ΠΎΠ² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ°ΠΊ Π½Π΅ Π΄Π΅Π»Π°ΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΊ ΡΡΠ°ΡΠΈΠΊΠ΅ ΡΠ²Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, Π»ΠΈΠ±ΠΎ Π½Π΅ΡΠ²Π½ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° import static.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Maxπͺ 
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΡΠΈΠ½Π°Π»ΡΠ½Π°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ L-value ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° β ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎ-Π²ΡΠΎΡΡΡ , ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ null, Π½ΠΎ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΈΠΏΠ°:
Π-ΡΡΠ΅ΡΡΠΈΡ , ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ»Π΅Π½Π°ΠΌ ΠΊΠ»Π°ΡΡΠ°. Π Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ. ΠΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ, NullPointerException Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ, Π½ΠΎ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅Π½ΠΎΠ² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ°ΠΊ Π½Π΅ Π΄Π΅Π»Π°ΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΊ ΡΡΠ°ΡΠΈΠΊΠ΅ ΡΠ²Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, Π»ΠΈΠ±ΠΎ Π½Π΅ΡΠ²Π½ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° import static.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Max
Please open Telegram to view this post
    VIEW IN TELEGRAM
  π₯6π3β€2
  Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ enum?
enum β ΡΠΈΠΏ-ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅. ΠΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΎΠΊ Π²ΠΎΠΏΡΠΎΡΠ°, Π²ΡΠ΅ ΠΎΠ½ΠΈ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΡ ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡΡ Π²ΠΎΠΎΠ±ΡΠ΅. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ-ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ. enum Foo Π²ΡΠ΅Π³Π΄Π° Π½Π΅ΡΠ²Π½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Enum<Foo> β ΡΠΎ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅Π»ΡΠ·Ρ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ, Π½ΠΎ Π²ΡΡ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΠ·-Π·Π° generic-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ° ΠΊΡΠΎΠΌΠ΅ Object.
Π―Π²Π»ΡΠ΅ΡΡΡ Comparable (ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ) ΠΈ Serializable (ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ).
ΠΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠ²Π½ΠΎ public static final ΠΈ ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ. ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠΏΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Effective Java ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΈΠ½Π³Π»ΡΠΎΠ½Π° enum.
ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Ρ ΡΠ°Π½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° name ΠΈ ordinal β ΠΈΠΌΡ ΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ values Π²Π΅ΡΠ½Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, valueOf β ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ.
Π€ΠΈΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Maxπͺ 
enum β ΡΠΈΠΏ-ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅. ΠΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΎΠΊ Π²ΠΎΠΏΡΠΎΡΠ°, Π²ΡΠ΅ ΠΎΠ½ΠΈ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΡ ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡΡ Π²ΠΎΠΎΠ±ΡΠ΅. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ-ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ. enum Foo Π²ΡΠ΅Π³Π΄Π° Π½Π΅ΡΠ²Π½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Enum<Foo> β ΡΠΎ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅Π»ΡΠ·Ρ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ, Π½ΠΎ Π²ΡΡ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΠ·-Π·Π° generic-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ° ΠΊΡΠΎΠΌΠ΅ Object.
Π―Π²Π»ΡΠ΅ΡΡΡ Comparable (ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ) ΠΈ Serializable (ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ).
ΠΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠ²Π½ΠΎ public static final ΠΈ ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ. ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠΏΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Effective Java ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΈΠ½Π³Π»ΡΠΎΠ½Π° enum.
ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Ρ ΡΠ°Π½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° name ΠΈ ordinal β ΠΈΠΌΡ ΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ values Π²Π΅ΡΠ½Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, valueOf β ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ.
Π€ΠΈΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Max
Please open Telegram to view this post
    VIEW IN TELEGRAM
  π11π₯4β€2
  Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 13 Π½ΠΎΡΠ±ΡΡ Π² 19:00
Π Π°Π·Π±Π΅ΡΡΠΌ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΡΡΠ΅Ρ, Π½Π°Π²Π΅Π΄ΡΠΌ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π² API ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΏΠ°ΡΠ°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ.
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅:
π ΠΠ°ΠΊ Π½Π΅ ΡΠΏΡΡΡΠΈΡΡ Π²Π°ΠΆΠ½ΠΎΠ΅: Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠ²ΡΡΡΠ΅Ρ Π² Π’Π΅Π»Π΅ΠΌΠΎΡΡΠ΅ β ΠΠ»ΡΡ ΠΡΠΈΠ³ΠΎΡΡΠ΅Π², ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π±ΡΠΊΠ΅Π½Π΄Π° Π’Π΅Π»Π΅ΠΌΠΎΡΡΠ°.
π Π£ΠΊΡΠΎΡΠ΅Π½ΠΈΠ΅ API: ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ β ΠΠΈΠΊΠΈΡΠ° ΠΠΎΠΌΠ°ΠΊΠΈΠ½, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π’Π΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
π ΠΠ°ΠΊ ΠΌΡ Π·Π°ΠΊΠ°ΠΏΡΠ²Π°Π»ΠΈ Π·Π²Π΅Π·Π΄ΠΎΠ»ΡΡ: ΠΏΠΎΡΠ΅ΠΌΡ Π²Π°ΠΆΠ½ΠΎ ΠΎΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎΡΡ Π½Π° Π°ΡΡ ΡΠ΅Π²ΡΡ β ΠΡΡΠ΅ΠΌΠΈΠΉ ΠΠΎΡΡΠ±Π΅Π½ΠΊΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΠΎΡΡΡ.
ΠΠΎΠΌΠ°Π½Π΄Π° Π―Π½Π΄Π΅ΠΊΡ 360 ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°ΠΌΠΈ >1.000.000+ RPS ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ 95+ ΠΌΠ»Π½ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΡΡ β ΠΠΈΡΠΊ, ΠΠΎΡΡΠ°, Π’Π΅Π»Π΅ΠΌΠΎΡΡ, ΠΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
π»Π ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² Π²Π°Ρ Π±ΡΠ΄ΡΡ ΠΆΠ΄Π°ΡΡ Π°ΡΡΠ΅ΠΏΠ°ΡΠΈ ΠΈ Π½Π΅ΡΠ²ΠΎΡΠΊΠΈΠ½Π³!
Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅
Please open Telegram to view this post
    VIEW IN TELEGRAM
  π₯3π2β€1
  ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΊΠ»Π°ΡΡΠΎΠ²?
Π Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ β Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ClassLoader. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈ ΡΠ°ΠΉΠ»Ρ-ΡΠ΅ΡΡΡΡΡ.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ»Π°ΡΡΠ° (ΡΠΎΡΠ½Π΅Π΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°) ΠΈ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡ Π»ΠΎΠ°Π΄Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π³ΡΡΠ·ΠΈΠ» ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠΎΠ΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²ΡΠ΅Ρ , Π΄Π°ΠΆΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² β Π»Π΅Π½ΠΈΠ²Π°Ρ.
ΠΡΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ· ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° loadClass Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°.
Π URLClassLoader ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°Ρ JVM ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° ΡΠ»ΡΠΆΠΈΡ .class-ΡΠ°ΠΉΠ». ΠΡΡΠ³ΠΈΠ΅ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ: ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ΅ΡΡΡΡ, ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅. Π ΠΏΡΠΈΠΌΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΈΠ· javassist ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π° Π»Π΅ΡΡ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Class. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π½Π΅ Π² ΠΊΡΡΠ΅, Π° Π² permgen/metaspace. Class ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ³ΡΡΠΆΠ΅Π½, ΠΊΠΎΠ³Π΄Π° Π·Π°Π³ΡΡΠ·ΠΈΠ²ΡΠΈΠΉ Π΅Π³ΠΎ ClassLoader ΡΡΠ°Π» ΠΌΡΡΠΎΡΠΎΠΌ.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Maxπͺ 
Π Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ β Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ClassLoader. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈ ΡΠ°ΠΉΠ»Ρ-ΡΠ΅ΡΡΡΡΡ.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ»Π°ΡΡΠ° (ΡΠΎΡΠ½Π΅Π΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°) ΠΈ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡ Π»ΠΎΠ°Π΄Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π³ΡΡΠ·ΠΈΠ» ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠΎΠ΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²ΡΠ΅Ρ , Π΄Π°ΠΆΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² β Π»Π΅Π½ΠΈΠ²Π°Ρ.
ΠΡΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ· ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° loadClass Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°.
Π URLClassLoader ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°Ρ JVM ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° ΡΠ»ΡΠΆΠΈΡ .class-ΡΠ°ΠΉΠ». ΠΡΡΠ³ΠΈΠ΅ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ: ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ΅ΡΡΡΡ, ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅. Π ΠΏΡΠΈΠΌΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΈΠ· javassist ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π° Π»Π΅ΡΡ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Class. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π½Π΅ Π² ΠΊΡΡΠ΅, Π° Π² permgen/metaspace. Class ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ³ΡΡΠΆΠ΅Π½, ΠΊΠΎΠ³Π΄Π° Π·Π°Π³ΡΡΠ·ΠΈΠ²ΡΠΈΠΉ Π΅Π³ΠΎ ClassLoader ΡΡΠ°Π» ΠΌΡΡΠΎΡΠΎΠΌ.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Max
Please open Telegram to view this post
    VIEW IN TELEGRAM
  π₯9π4β€1
  ΠΠ°ΡΡΡ, Π΄Π΅Π½ΡΠ³ΠΈ, Π΄Π²Π° ΡΡΠ²ΠΎΠ»Π°? No, no, no! Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠ΅-ΡΡΠΎ ΠΏΠΎΠ»ΡΡΡΠ΅: ΠΌΠΈΡΠ°ΠΏ Β«ΠΠ°ΡΡΡ, Π΄Π΅Π½ΡΠ³ΠΈ, JVMΒ»
ΠΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³Π»ΡΠ½ΡΡΡ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ JVM ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, Π½ΠΎ ΠΈ ΠΏΠΎΠ²ΠΎΠ΄ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π²ΡΠ΅ΠΌΡ Π² ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΠΊΡΠΏΠ΅ΡΡΡ ΠΈΠ· PVS-Studio ΡΠ°Π·Π±Π΅ΡΡΡ, ΠΊΠ°ΠΊ JVM ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΡΠ΅ΠΌ MethodHandle Π»ΡΡΡΠ΅ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠΈ, ΠΈ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ΄ β ΠΎΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° Π΄ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠΎΠΊΠ»Π°Π΄Ρ:
βͺοΈ Β«ΠΠ°ΠΊ JVM ΡΡΠΈΠ»Π°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅Β»
Π£Π²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ JSR 292 (MethodHandle, CallSite, invokedynamic) ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π»Π°Π½Π΄ΡΠ°ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ² JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ ΡΠ°Π½ΡΡΠ΅ ΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π΅ΠΏΠΎΠ΄Π²Π»Π°ΡΡΠ½ΡΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
βͺοΈ Β«Π§ΡΠΎ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΒ»
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΡΡΡ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΡΡ Π·Π° ΡΠ°Π·Π±ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·: ΠΈΠ· ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΊΠ°ΠΊ ΠΎΠ½ "Π²ΠΈΠ΄ΠΈΡ" ΠΊΠΎΠ΄ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. Π Π°Π·Π±Π΅ΡΡΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π·Π°Π΄Π°Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°: ΠΎΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅ Π΄ΠΎ taint Π°Π½Π°Π»ΠΈΠ·Π°.
Π Π΅ΡΡ Π²Π°Ρ ΠΆΠ΄ΡΡ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎ ΡΠΏΠΈΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΈΡΡΠ°!
Π£ΡΠ°ΡΡΠΈΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅. ΠΠ΅ΡΡΠ° Π² ΠΎΡΠ»Π°ΠΉΠ½-ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ! Π‘ΠΏΠ΅ΡΠΈΡΠ΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ Π‘Π‘Π«ΠΠΠ.
ΠΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³Π»ΡΠ½ΡΡΡ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ JVM ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, Π½ΠΎ ΠΈ ΠΏΠΎΠ²ΠΎΠ΄ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π²ΡΠ΅ΠΌΡ Π² ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΠΊΡΠΏΠ΅ΡΡΡ ΠΈΠ· PVS-Studio ΡΠ°Π·Π±Π΅ΡΡΡ, ΠΊΠ°ΠΊ JVM ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΡΠ΅ΠΌ MethodHandle Π»ΡΡΡΠ΅ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠΈ, ΠΈ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ΄ β ΠΎΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° Π΄ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠΎΠΊΠ»Π°Π΄Ρ:
βͺοΈ Β«ΠΠ°ΠΊ JVM ΡΡΠΈΠ»Π°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅Β»
Π£Π²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ JSR 292 (MethodHandle, CallSite, invokedynamic) ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π»Π°Π½Π΄ΡΠ°ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ² JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ ΡΠ°Π½ΡΡΠ΅ ΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π΅ΠΏΠΎΠ΄Π²Π»Π°ΡΡΠ½ΡΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
βͺοΈ Β«Π§ΡΠΎ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΒ»
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΡΡΡ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΡΡ Π·Π° ΡΠ°Π·Π±ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·: ΠΈΠ· ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΊΠ°ΠΊ ΠΎΠ½ "Π²ΠΈΠ΄ΠΈΡ" ΠΊΠΎΠ΄ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. Π Π°Π·Π±Π΅ΡΡΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π·Π°Π΄Π°Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°: ΠΎΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅ Π΄ΠΎ taint Π°Π½Π°Π»ΠΈΠ·Π°.
Π Π΅ΡΡ Π²Π°Ρ ΠΆΠ΄ΡΡ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎ ΡΠΏΠΈΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΈΡΡΠ°!
Π£ΡΠ°ΡΡΠΈΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅. ΠΠ΅ΡΡΠ° Π² ΠΎΡΠ»Π°ΠΉΠ½-ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ! Π‘ΠΏΠ΅ΡΠΈΡΠ΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ Π‘Π‘Π«ΠΠΠ.
π2
  ΠΠ°ΠΊΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²?
Π JVM Π²ΡΡΡΠΎΠ΅Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°:
π Bootstrap β Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π² JVM Π½Π°ΡΠΈΠ²Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ
 ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
 Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠ². ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠ°ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
 ΠΊΠ»Π°ΡΡΠΎΠ² java.*;
π Platform β ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
 ΠΊΠ»Π°ΡΡΠΎΠ² Java-ΡΠ°Π½ΡΠ°ΠΉΠΌΠ°. ΠΠΎ Java 9 Π½Π°Π·ΡΠ²Π°Π»ΡΡ Extension ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ, ΡΡΠΎ Π΅ΠΌΡ Π±ΡΠ΄ΡΡ Π²ΠΈΠ΄Π½Ρ (Π½ΠΎ Π½Π΅ ΡΠ°ΠΊΡ ΡΡΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠΌ) Π²ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Java SE ΠΈ JDK;
π System (Application) β Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠ»Π°ΡΡΡ ΠΈΠ· classpath ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠ»Π°ΡΡ, ClassLoader ΠΏΡΠΎΠ²Π΅ΡΠΈΡ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½, ΡΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ ΡΠΌΡΡΠ»Π° ΡΡΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ β Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ web-ΡΠ΅ΡΠ²Π΅ΡΠ° Apache Tomcat. ΠΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ»Π°ΡΡ-singleton Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΎΠ±ΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΈ ΡΠΎΠΌ Π³ΡΡΠ·ΡΡΡΡ ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Maxπͺ 
Π JVM Π²ΡΡΡΠΎΠ΅Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°:
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠ»Π°ΡΡ, ClassLoader ΠΏΡΠΎΠ²Π΅ΡΠΈΡ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½, ΡΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ ΡΠΌΡΡΠ»Π° ΡΡΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ β Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ web-ΡΠ΅ΡΠ²Π΅ΡΠ° Apache Tomcat. ΠΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ»Π°ΡΡ-singleton Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΎΠ±ΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΈ ΡΠΎΠΌ Π³ΡΡΠ·ΡΡΡΡ ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Max
Please open Telegram to view this post
    VIEW IN TELEGRAM
  π8π₯4
  Π₯ΠΎΡΠΈΡΠ΅ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΌΠΈΠ½ΠΈ-Google? π
π 22 ΠΎΠΊΡΡΠ±ΡΡ, 20:00 ΠΏΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ Π½Π° ΠΎΡΠΊΡΡΡΡΠΉ ΡΡΠΎΠΊ OTUS Β«ΠΠΈΠ½ΠΈ-ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΡΠΊΠ°ΠΌΠΈΒ». ΠΠ° ΡΡΠΎΠΌ Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊ Ρ Π½ΡΠ»Ρ β Π±Π΅Π· Π³ΠΎΡΠΎΠ²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΌΠ°Π³ΠΈΠΈ. Π’ΠΎΠ»ΡΠΊΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΠΊΠΎΠ΄.
Π Π°Π·Π±Π΅ΡΡΠΌ, ΠΊΠ°ΠΊ:
β’ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΠΠ ΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ;
β’ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄ΡΡΡΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ;
β’ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎΠ΄ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ΅ΠΊΡΡΡ;
β’ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π²ΡΡ ΡΡΠΎ Π² ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΎΡΠ»Π°ΠΉΠ½-ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊ.
ΠΠΎΡΠ»Π΅ Π²Π΅Π±ΠΈΠ½Π°ΡΠ° Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ:
β ΡΡΡΠΎΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ»ΠΎΠ² ΠΈ Π±ΡΡΡΡΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΏΠΎ Π½Π΅ΠΌΡ;
β ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²;
β ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Π²Π½ΡΡΡΠΈ ΡΡΡΡΠΎΠ΅Π½Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊΠΈ.
ΠΡΠΊΡΡΡΡΠΉ ΡΡΠΎΠΊ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠ΅Π΄Π΄Π²Π΅ΡΠΈΠ΅ ΡΡΠ°ΡΡΠ° ΠΊΡΡΡΠ° Β«ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Β». ΠΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΊΠΈΠ΄ΠΊΡ Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ 22 ΠΎΠΊΡΡΠ±ΡΡ Π² 20:00:
https://vk.cc/cQpVAw
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576
π 22 ΠΎΠΊΡΡΠ±ΡΡ, 20:00 ΠΏΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ Π½Π° ΠΎΡΠΊΡΡΡΡΠΉ ΡΡΠΎΠΊ OTUS Β«ΠΠΈΠ½ΠΈ-ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΡΠΊΠ°ΠΌΠΈΒ». ΠΠ° ΡΡΠΎΠΌ Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊ Ρ Π½ΡΠ»Ρ β Π±Π΅Π· Π³ΠΎΡΠΎΠ²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΌΠ°Π³ΠΈΠΈ. Π’ΠΎΠ»ΡΠΊΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΠΊΠΎΠ΄.
Π Π°Π·Π±Π΅ΡΡΠΌ, ΠΊΠ°ΠΊ:
β’ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΠΠ ΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ;
β’ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄ΡΡΡΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ;
β’ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎΠ΄ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ΅ΠΊΡΡΡ;
β’ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π²ΡΡ ΡΡΠΎ Π² ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΎΡΠ»Π°ΠΉΠ½-ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊ.
ΠΠΎΡΠ»Π΅ Π²Π΅Π±ΠΈΠ½Π°ΡΠ° Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ:
β ΡΡΡΠΎΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ»ΠΎΠ² ΠΈ Π±ΡΡΡΡΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΏΠΎ Π½Π΅ΠΌΡ;
β ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²;
β ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Π²Π½ΡΡΡΠΈ ΡΡΡΡΠΎΠ΅Π½Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊΠΈ.
ΠΡΠΊΡΡΡΡΠΉ ΡΡΠΎΠΊ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠ΅Π΄Π΄Π²Π΅ΡΠΈΠ΅ ΡΡΠ°ΡΡΠ° ΠΊΡΡΡΠ° Β«ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Β». ΠΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΊΠΈΠ΄ΠΊΡ Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ 22 ΠΎΠΊΡΡΠ±ΡΡ Π² 20:00:
https://vk.cc/cQpVAw
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576
π3π₯2
  Π§Π΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ?
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ β ΡΠΎΠ»Ρ ΠΠΠ. ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° (overload) ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (override) β Π΄Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² Java.
ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ad-hoc-ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ Β«ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅Β» ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. Π‘ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π½ΠΎ ΡΠ°Π·Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΠΈΠΏΠΎΠ² ΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
Ad-hoc β Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ Π½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π½Π½Π΅Π΅, ΠΈΠ»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ (early binding, static dispatch). ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π½Π΅ΠΉ Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ, ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠΎ Π΅ΡΠ΅ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΡΠ»ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π΄Π²Π° ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°, Π° Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ ΠΎΠ±Π°, ΡΠ»ΡΡΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° println Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ char[] ΠΈ ΡΠΎ String, ΡΠ°ΠΊ ΠΊΠ°ΠΊ null ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΡΠ΅ΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ.
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (override) Π΄Π°Π΅Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠ². ΠΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ/ΠΏΠΎΠ΄ΠΌΠ΅Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π΅ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΏΠΎΠ΄ ΡΠΈΠΏΠΎΠΌ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π°Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΈΠΏΠ°. ΠΡΠΈΠΌΠ΅Ρ:
List<String> list = new LinkedList<>();
list.add(βfooβ);
ΠΠ΄Π΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ add Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠΈΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΏΠΈΡΠΊΠΎΠ², Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ²ΡΠ·Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°.
ΠΡΠ±ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (late binding, dynamic dispatch).
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΠΈΡΠΊΠΎΠ² (LSP): Π² Ρ ΠΎΡΠΎΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π΄Π»Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΠ»ΠΈΡΠΈΠΌ ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ.
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΡΡΠΎ ΡΠ½Π°Π±ΠΆΠ°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @Override. ΠΠ΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΡΠ°ΠΊΠΎΠΉ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ·ΠΈΡΡ Π½Π°Π±ΠΎΡ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠΈΠΏ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° Π½Π° ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΠΎΠ³ΠΈΠΉ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Maxπͺ 
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ β ΡΠΎΠ»Ρ ΠΠΠ. ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° (overload) ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (override) β Π΄Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² Java.
ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ad-hoc-ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ Β«ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅Β» ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. Π‘ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π½ΠΎ ΡΠ°Π·Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΠΈΠΏΠΎΠ² ΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
Ad-hoc β Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ Π½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π½Π½Π΅Π΅, ΠΈΠ»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ (early binding, static dispatch). ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π½Π΅ΠΉ Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ, ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠΎ Π΅ΡΠ΅ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΡΠ»ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π΄Π²Π° ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°, Π° Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ ΠΎΠ±Π°, ΡΠ»ΡΡΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° println Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ char[] ΠΈ ΡΠΎ String, ΡΠ°ΠΊ ΠΊΠ°ΠΊ null ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΡΠ΅ΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ.
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (override) Π΄Π°Π΅Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠ². ΠΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ/ΠΏΠΎΠ΄ΠΌΠ΅Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π΅ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΏΠΎΠ΄ ΡΠΈΠΏΠΎΠΌ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π°Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΈΠΏΠ°. ΠΡΠΈΠΌΠ΅Ρ:
List<String> list = new LinkedList<>();
list.add(βfooβ);
ΠΠ΄Π΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ add Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠΈΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΏΠΈΡΠΊΠΎΠ², Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ²ΡΠ·Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°.
ΠΡΠ±ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (late binding, dynamic dispatch).
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΠΈΡΠΊΠΎΠ² (LSP): Π² Ρ ΠΎΡΠΎΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π΄Π»Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΠ»ΠΈΡΠΈΠΌ ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ.
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΡΡΠΎ ΡΠ½Π°Π±ΠΆΠ°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @Override. ΠΠ΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΡΠ°ΠΊΠΎΠΉ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ·ΠΈΡΡ Π½Π°Π±ΠΎΡ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠΈΠΏ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° Π½Π° ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΠΎΠ³ΠΈΠΉ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Max
Please open Telegram to view this post
    VIEW IN TELEGRAM
  π10π₯6β€2
  ΠΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ Π½Π° ΠΎΡΠΊΡΡΡΡΠΉ ΡΡΠΎΠΊ.
π 22 ΠΎΠΊΡΡΠ±ΡΡ Π² 19:00 ΠΠ‘Π
π ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎ. Π£ΡΠΎΠΊ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠ°ΡΡΠ° ΠΊΡΡΡΠ° Β«Kotlin Backend Developer. ProfessionalΒ».
Π£ΠΆΠ΅ ΠΏΡΠΎΡΠ»Π° ΡΠΏΠΎΡ Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ°, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π»ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘Π΅ΠΉΡΠ°Ρ Π»ΡΠ±Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π°ΡΡΡΠ΅Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ, Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΡΠΆΠ΅ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄ΠΈΠ²ΠΈΡΡ.
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ ΡΡΠ°Π» Π²ΠΎΠΏΡΠΎΡ ΠΏΡΠΎ Saga, Ρ ΠΎΡΠ΅ΠΎΠ³ΡΠ°ΡΠΈΡ ΠΈ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ.
Π ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡ ΡΠ΅ΠΌΡ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π½Π° Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ Kotlin-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π° Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅:
- ΠΠ±ΡΡΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡΡ ΡΠΈΠΏΠ° Airflow ΠΈΠ»ΠΈ Camunda, ΡΠ°ΠΊ Π½ΠΎΠ²ΡΡ ΠΈΠ³ΡΠΎΠΊΠΎΠ².
- ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ Π²Π΅Π±ΠΈΠ½Π°ΡΠ° ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ΅ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡΠΎΠΌ.
π Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ: https://vk.cc/cQpD2P
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576
Please open Telegram to view this post
    VIEW IN TELEGRAM
  π2π₯2
  Π§Π΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ interface ΠΎΡ @β interface?
Π‘ΡΠ΅Π΄ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΡΠΎΠ±Π°Ρ Π³ΡΡΠΏΠΏΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° β Serializable. Π’Π°ΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠ»Π°ΡΡΡ Π½Π΅ΠΊΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠΈ (ΠΈ instanceof), Π»ΠΈΠ±ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ, Π° ΠΊΠ°ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΎ ΠΌΠ°ΡΠΊΠ΅ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΠ°ΡΠΊΠ΅ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Java 1.5 Π² ΡΠ·ΡΠΊΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ Π²ΠΈΠ΄ ΡΠΈΠΏΠΎΠ² β Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ. ΠΠ½ΠΈ Π±Π΅ΡΡΡ Π½Π° ΡΠ΅Π±Ρ ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠ°ΡΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°:
1. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΊΠ»Π°ΡΡΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Π½ΠΎ ΠΏΠΎΡΡΠΈ ΠΊ ΡΠ΅ΠΌΡ ΡΠ³ΠΎΠ΄Π½ΠΎ: ΠΊ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌ, ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ, ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ ElementType;
2. ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ²ΠΎΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ
3. ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ΅, Π½Π΅ ΠΏΠΎΠΏΠ°Π² Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ Π²ΠΎΠ²ΡΠ΅. ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π΅Π΅ RetentionPolicy;
4. ΠΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΎΠΉ, ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Ρ Π΅Π΅ @Inherited;
5. Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ. ΠΡΠΈΠΌΠ΅Π½Π΅Π½Π½Π°Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Π·Π³Π»ΡΠ΄Π° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π½Π°ΡΡΠΎΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
Joshua Block Π² Π³Π»Π°Π²Π΅ 37 Effective Java Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π΄Π²Π° ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΌΠ°ΡΠΊΠ΅ΡΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡΠΌΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ:
1. ΠΠΎΠΆΠ½ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ°ΡΠΊΠ΅ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ β ΡΡΠΎ Π΅ΡΠ΅ ΠΈ ΡΠΈΠΏ;
2. ΠΠΎΠΆΠ½ΠΎ ΡΡΠ·ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡ ΠΌΠ°ΡΠΊΠ΅ΡΠ° ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ, ΡΠ΄Π΅Π»Π°Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΡ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠΌ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡ ΠΊ Π²ΠΎΠΏΡΠΎΡΡ, ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ @interface ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ, interface β ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² .class-ΡΠ°ΠΉΠ»Π΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ java.lang.annotation.Annotation, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ ΡΠ»Π°Π³ΠΎΠΌ ACC_ANNOTATION. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΡΠΈΠΌ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ Π°ΡΡΠΈΠ±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² JVMS 4.7.16-4.7.22.
Π ΡΠ»ΠΎΠ²Ρ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΠΈΠ΄Π° @something Π² javadoc Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΠ³Π°ΠΌΠΈ. ΠΠ½ΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Ρ Π½ΠΈΠΌΠΈ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Maxπͺ 
Π‘ΡΠ΅Π΄ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΡΠΎΠ±Π°Ρ Π³ΡΡΠΏΠΏΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° β Serializable. Π’Π°ΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠ»Π°ΡΡΡ Π½Π΅ΠΊΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠΈ (ΠΈ instanceof), Π»ΠΈΠ±ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ, Π° ΠΊΠ°ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΎ ΠΌΠ°ΡΠΊΠ΅ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΠ°ΡΠΊΠ΅ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Java 1.5 Π² ΡΠ·ΡΠΊΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ Π²ΠΈΠ΄ ΡΠΈΠΏΠΎΠ² β Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ. ΠΠ½ΠΈ Π±Π΅ΡΡΡ Π½Π° ΡΠ΅Π±Ρ ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠ°ΡΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°:
1. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΊΠ»Π°ΡΡΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Π½ΠΎ ΠΏΠΎΡΡΠΈ ΠΊ ΡΠ΅ΠΌΡ ΡΠ³ΠΎΠ΄Π½ΠΎ: ΠΊ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌ, ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ, ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ ElementType;
2. ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ²ΠΎΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ
3. ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ΅, Π½Π΅ ΠΏΠΎΠΏΠ°Π² Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ Π²ΠΎΠ²ΡΠ΅. ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π΅Π΅ RetentionPolicy;
4. ΠΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΎΠΉ, ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Ρ Π΅Π΅ @Inherited;
5. Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ. ΠΡΠΈΠΌΠ΅Π½Π΅Π½Π½Π°Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Π·Π³Π»ΡΠ΄Π° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π½Π°ΡΡΠΎΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
Joshua Block Π² Π³Π»Π°Π²Π΅ 37 Effective Java Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π΄Π²Π° ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΌΠ°ΡΠΊΠ΅ΡΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡΠΌΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ:
1. ΠΠΎΠΆΠ½ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ°ΡΠΊΠ΅ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ β ΡΡΠΎ Π΅ΡΠ΅ ΠΈ ΡΠΈΠΏ;
2. ΠΠΎΠΆΠ½ΠΎ ΡΡΠ·ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡ ΠΌΠ°ΡΠΊΠ΅ΡΠ° ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ, ΡΠ΄Π΅Π»Π°Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΡ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠΌ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡ ΠΊ Π²ΠΎΠΏΡΠΎΡΡ, ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ @interface ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ, interface β ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² .class-ΡΠ°ΠΉΠ»Π΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ java.lang.annotation.Annotation, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ ΡΠ»Π°Π³ΠΎΠΌ ACC_ANNOTATION. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΡΠΈΠΌ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ Π°ΡΡΠΈΠ±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² JVMS 4.7.16-4.7.22.
Π ΡΠ»ΠΎΠ²Ρ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΠΈΠ΄Π° @something Π² javadoc Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΠ³Π°ΠΌΠΈ. ΠΠ½ΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Ρ Π½ΠΈΠΌΠΈ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Max
Please open Telegram to view this post
    VIEW IN TELEGRAM
  β€6π₯3π2
  Media is too big
    VIEW IN TELEGRAM
  ΠΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ Ρ
ΠΎΡΠΎΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π±Π°Π½ΠΊΠ° ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠΎΠ²Π΅Π½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° Π² 2025 Π³ΠΎΠ΄Ρ? 
Π£Π·Π½Π°Π΅ΡΡ Π² Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΏΠΎΠ΄ΠΊΠ°ΡΡΠ° Β«Π’Π΅Ρ Π½ΠΎ.ΠΠΎΠ³ΠΈΡΠ½ΠΎΒ» Ρ ΠΠ°Π²Π»ΠΎΠΌ ΠΠ°ΡΠΌΠΎΠ²ΡΠΌ ΠΈ ΠΠ°Π²Π»ΠΎΠΌ ΠΠ°ΡΠ΅ΡΠ½ΠΈΠΊΠΎΠ²ΡΠΌπ§βπ»  
ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΠ°ΡΡ Π»Π΅Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π² Π±Π°Π½ΠΊΠ°Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΠ»Π°ΡΡ, ΠΠ°Π·ΠΏΡΠΎΠΌΠ±Π°Π½ΠΊ ΡΠΎΠΆΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ. ΠΠ±ΡΡΠ΄ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°Ρ ΠΈ ΡΠΎΠ½ΠΊΠΎΡΡΠΈ Π½ΠΎΠ²ΠΎΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ Ρ ΡΠ΅ΠΌΠΈ, ΠΊΡΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π» ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ ΠΠ°Π·ΠΏΡΠΎΠΌΠ±Π°Π½ΠΊΠ°.
ΠΠ΅ΡΠΎΠΈ ΡΠ°ΡΡΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΠ°Π·ΠΏΡΠΎΠΌΠ±Π°Π½ΠΊ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΈΠ» ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ Π·Π° Π³ΠΎΠ΄: ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²Π΅Π½Π΄ΠΎΡΠ° Π΄ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΠΈΡΡ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡ ΡΠ½Π΅ΡΠ³ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΠΌ ΡΠΈΡΠΌΠ΅.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅ΠΌΡ ΡΠΏΠΈΠ·ΠΎΠ΄Π°:
βΊ ΠΠ°ΠΊ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π° Π²ΡΠ΅Ρ
 ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ
βΊ ΠΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΠ°Π·ΠΏΡΠΎΠΌΠ±Π°Π½ΠΊΠ°
βΊ ΠΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
βΊ ΠΠ°ΠΊΠΈΠ΅ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠΎΠΊΡΠ°ΡΠ°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΠΏΡΡΠΈ ΠΈ ΡΠΏΡΠΎΡΠ°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
βΊ ΠΠ°ΠΊΠΈΠ΅ ΠΏΠ»Π°Π½Ρ Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΈΡΡΠΎΠ²ΡΡ
 ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΠ°Π·ΠΏΡΠΎΠΌΠ±Π°Π½ΠΊΠ°
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ:
πΊ  VK ΠΠΈΠ΄Π΅ΠΎ
πΊ  Rutube
ΠΠΎΡΠ»ΡΡΠ°ΡΡ:
π΅  Π―Π½Π΄Π΅ΠΊΡ ΠΡΠ·ΡΠΊΠ°
π±  Apple Podcasts
π  VK ΠΠΎΠ΄ΠΊΠ°ΡΡΡ
#GPBtechno_ΠΏΠΎΠ΄ΠΊΠ°ΡΡ #GPB_Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΎ
Π Π΅ΠΊΠ»Π°ΠΌΠ°, ΠΠ°Π½ΠΊ ΠΠΠ (ΠΠ), ΠΠΠ: 7744001497, erid: 2Vtzqw6drnJ
Π£Π·Π½Π°Π΅ΡΡ Π² Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΏΠΎΠ΄ΠΊΠ°ΡΡΠ° Β«Π’Π΅Ρ Π½ΠΎ.ΠΠΎΠ³ΠΈΡΠ½ΠΎΒ» Ρ ΠΠ°Π²Π»ΠΎΠΌ ΠΠ°ΡΠΌΠΎΠ²ΡΠΌ ΠΈ ΠΠ°Π²Π»ΠΎΠΌ ΠΠ°ΡΠ΅ΡΠ½ΠΈΠΊΠΎΠ²ΡΠΌ
ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΠ°ΡΡ Π»Π΅Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π² Π±Π°Π½ΠΊΠ°Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΠ»Π°ΡΡ, ΠΠ°Π·ΠΏΡΠΎΠΌΠ±Π°Π½ΠΊ ΡΠΎΠΆΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ. ΠΠ±ΡΡΠ΄ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°Ρ ΠΈ ΡΠΎΠ½ΠΊΠΎΡΡΠΈ Π½ΠΎΠ²ΠΎΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ Ρ ΡΠ΅ΠΌΠΈ, ΠΊΡΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π» ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ ΠΠ°Π·ΠΏΡΠΎΠΌΠ±Π°Π½ΠΊΠ°.
ΠΠ΅ΡΠΎΠΈ ΡΠ°ΡΡΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΠ°Π·ΠΏΡΠΎΠΌΠ±Π°Π½ΠΊ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΈΠ» ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ Π·Π° Π³ΠΎΠ΄: ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²Π΅Π½Π΄ΠΎΡΠ° Π΄ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΠΈΡΡ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡ ΡΠ½Π΅ΡΠ³ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΠΌ ΡΠΈΡΠΌΠ΅.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅ΠΌΡ ΡΠΏΠΈΠ·ΠΎΠ΄Π°:
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ:
ΠΠΎΡΠ»ΡΡΠ°ΡΡ:
#GPBtechno_ΠΏΠΎΠ΄ΠΊΠ°ΡΡ #GPB_Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΎ
Π Π΅ΠΊΠ»Π°ΠΌΠ°, ΠΠ°Π½ΠΊ ΠΠΠ (ΠΠ), ΠΠΠ: 7744001497, erid: 2Vtzqw6drnJ
Please open Telegram to view this post
    VIEW IN TELEGRAM
  β€2π2π₯2
  ΠΠ°ΠΊ Spring ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² @Transactional ΠΌΠ΅ΡΠΎΠ΄Π΅?
  Anonymous Quiz
    51%
    ΠΡΠ±ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΊΠ°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
      
    4%
    Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π΅ ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π΅ΡΠ»ΠΈ Π½Π΅ Π²ΡΠ·Π²Π°ΡΡ TransactionStatus.setRollbackOnly()
      
    38%
    Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ RuntimeException ΠΈΠ»ΠΈ Error
      
    4%
    Spring ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ.
      
    3%
    ΠΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ @Transactional Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Spring Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ Π²Π΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
      
    π4π₯2
  ΠΠΎΠ³Π΄Π° Class.getClassLoader Π²Π΅ΡΠ½Π΅Ρ null?
ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π΅ ΡΠ΅ΠΌΡ. ΠΠ΅ΡΠ²Π°Ρ β ΠΊΠ»Π°ΡΡ Class Π² ΡΠ΅Π»ΠΎΠΌ. ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Class<T> ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ runtime-ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ². Π ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ β ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΌΠ΅ΡΠ°ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠ΅ΠΉ ΠΈΠ»ΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°ΠΌΠΈ.
ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° Class ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ .class-ΡΠ°ΠΉΠ»Π°. Π‘ΠΎΠ·Π΄Π°ΡΡΡΡ ΠΎΠ½ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ»ΠΎΠ°Π΄Π΅ΡΠ°. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅.
ΠΡΠΎΡΠ°Ρ ΡΠ΅ΠΌΠ° Π΄Π»Ρ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ° Π·Π΄Π΅ΡΡ β ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° Class Π΄Π»Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ², ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ void. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΡΡΠΎ ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²: void.class, int.class, float[][].class. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ foo.class β ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅Π½Ρ, Π° Π»ΠΈΡΠ΅ΡΠ°Π» ΠΊΠ»Π°ΡΡΠ°.
ΠΠ»Ρ void ΡΠΈΠΏΠΎΠΌ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ T Π²ΡΡΡΡΠΏΠ°Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π½Π΅ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠΈΠΏ java.lang.Void. Π’ΠΈΠΏ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π° β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ-Π²ΡΠ°ΠΏΠΏΠ΅Ρ. Π₯ΠΎΡΡ Π΄Π»Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°-Π²ΡΠ°ΠΏΠΏΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Class. Π’ΠΎ Π΅ΡΡΡ int.class != Integer.class.
ΠΠ΅ΡΠΎΠ΄ getClassLoader ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π²Π΅ΡΠ½Π΅Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π΅Π³ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΠ». null ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ bootstrap-ΠΊΠ»Π°ΡΡΠ»ΠΎΠ°Π΄Π΅ΡΠΎΠΌ ΡΠΈΠΏΠ°. ΠΠ»Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ Π΄Π»Ρ ΡΠΈΠΏΠ° Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ»Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΈ void ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ null.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Maxπͺ 
ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π΅ ΡΠ΅ΠΌΡ. ΠΠ΅ΡΠ²Π°Ρ β ΠΊΠ»Π°ΡΡ Class Π² ΡΠ΅Π»ΠΎΠΌ. ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Class<T> ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ runtime-ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ². Π ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ β ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΌΠ΅ΡΠ°ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠ΅ΠΉ ΠΈΠ»ΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°ΠΌΠΈ.
ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° Class ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ .class-ΡΠ°ΠΉΠ»Π°. Π‘ΠΎΠ·Π΄Π°ΡΡΡΡ ΠΎΠ½ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ»ΠΎΠ°Π΄Π΅ΡΠ°. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅.
ΠΡΠΎΡΠ°Ρ ΡΠ΅ΠΌΠ° Π΄Π»Ρ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ° Π·Π΄Π΅ΡΡ β ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° Class Π΄Π»Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ², ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ void. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΡΡΠΎ ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²: void.class, int.class, float[][].class. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ foo.class β ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅Π½Ρ, Π° Π»ΠΈΡΠ΅ΡΠ°Π» ΠΊΠ»Π°ΡΡΠ°.
ΠΠ»Ρ void ΡΠΈΠΏΠΎΠΌ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ T Π²ΡΡΡΡΠΏΠ°Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π½Π΅ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠΈΠΏ java.lang.Void. Π’ΠΈΠΏ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π° β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ-Π²ΡΠ°ΠΏΠΏΠ΅Ρ. Π₯ΠΎΡΡ Π΄Π»Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°-Π²ΡΠ°ΠΏΠΏΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Class. Π’ΠΎ Π΅ΡΡΡ int.class != Integer.class.
ΠΠ΅ΡΠΎΠ΄ getClassLoader ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π²Π΅ΡΠ½Π΅Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π΅Π³ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΠ». null ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ bootstrap-ΠΊΠ»Π°ΡΡΠ»ΠΎΠ°Π΄Π΅ΡΠΎΠΌ ΡΠΈΠΏΠ°. ΠΠ»Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ Π΄Π»Ρ ΡΠΈΠΏΠ° Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ»Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΈ void ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ null.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Max
Please open Telegram to view this post
    VIEW IN TELEGRAM
  π5π₯4β€3
  πΠΡΡΡ βSoftware Architectβ ΠΎΡ OTUS β ΡΡΠ°ΡΡ Π½Π°Π±ΠΎΡΠ° Π² Π³ΡΡΠΏΠΏΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ!
ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΡΠ΅ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ β ΡΡΠΎΡ ΠΊΡΡΡ Π΄Π»Ρ Π²Π°Ρ!
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎΠΈΡ ΠΏΠΎΠΉΡΠΈ:
- 100% ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
- ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΠΈΠ±ΠΊΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ
- ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ, Big Data
- Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ: CQRS, Event Sourcing ΠΈ Π΄Ρ.
π‘ ΠΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ:
- Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, Π³ΠΎΡΠΎΠ²ΡΠΌ Π²ΡΠΉΡΠΈ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ
- ΠΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡΠ°ΠΌ, ΡΠ³Π»ΡΠ±Π»ΡΡΡΠΈΠΌ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ
- Π’ΠΈΠΌΠ»ΠΈΠ΄Π°ΠΌ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌ
β ΠΠΎΡΠ»Π΅ ΠΊΡΡΡΠ° Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅:
- ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
- ΠΠΎΠ²ΡΡΠ°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌ
π ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ Π²ΡΡΡΠΏΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: https://vk.cc/cQw8lY
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576
ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΡΠ΅ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ β ΡΡΠΎΡ ΠΊΡΡΡ Π΄Π»Ρ Π²Π°Ρ!
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎΠΈΡ ΠΏΠΎΠΉΡΠΈ:
- 100% ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
- ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΠΈΠ±ΠΊΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ
- ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ, Big Data
- Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ: CQRS, Event Sourcing ΠΈ Π΄Ρ.
π‘ ΠΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ:
- Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, Π³ΠΎΡΠΎΠ²ΡΠΌ Π²ΡΠΉΡΠΈ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ
- ΠΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡΠ°ΠΌ, ΡΠ³Π»ΡΠ±Π»ΡΡΡΠΈΠΌ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ
- Π’ΠΈΠΌΠ»ΠΈΠ΄Π°ΠΌ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌ
β ΠΠΎΡΠ»Π΅ ΠΊΡΡΡΠ° Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅:
- ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
- ΠΠΎΠ²ΡΡΠ°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌ
π ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ Π²ΡΡΡΠΏΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: https://vk.cc/cQw8lY
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576
β€3π2π₯2
  ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ A ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠΌ B?
Π Java Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ². Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΎΠ½ΠΈ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². Π ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ:
instanceof β Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΡΠ°ΠΌΡΠΉ Π±ΡΡΡΡΡΠΉ ΠΈ ΡΠ°ΠΌΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ. ΠΡΠ»ΠΈ Π΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ A ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ B ΡΠ²Π½ΠΎ, Π²ΡΠ±ΠΈΡΠ°ΡΡ Π½Π°Π΄ΠΎ Π΅Π³ΠΎ. ΠΡΠ»ΠΈ A (ΡΠΎΡΠ½Π΅Π΅ ΡΠΈΠΏ Ρ ΡΠ°Π½ΡΡΠ΅ΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ A ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ) ΠΈ B Π½Π΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ β ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΎΡΠ½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠΌ B ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠΏΠ°Π΄Π΅Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ inconvertible types.
Class::isInstance β ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° A. ΠΠ³ΠΎ ΡΡΠΎΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ A Π² Π½Π°Π»ΠΈΡΠΈΠΈ, Π½ΠΎ B β Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠΈΠΏ. Π’ΠΎ Π΅ΡΡΡ, Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ A a ΠΈ Class bClass, ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ bClass.isInstance(a).
Class::isAssignableFrom β ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Class<A>. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΎΡΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° A Π½Π΅Ρ. bClass.isAssignableFrom(aClass).
ΠΡΡΡ Π΅ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΈΠΌΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΈΠΏΠ° A ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π΅Π³ΠΎ ΠΊ B. ΠΡΠ»ΠΈ ΡΠΈΠΏΡ Π±ΡΠ»ΠΈ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΡΠ±ΡΠΎΡΠΈΡ ClassCastException. ΠΡΠΎ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠΌΡΡΠ»Π°Ρ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡ Π½Π΅Ρ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΠΏΠΈΡΠ°Π½Π° Π² Effective Java Item 57.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Maxπͺ 
Π Java Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ². Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΎΠ½ΠΈ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². Π ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ:
instanceof β Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΡΠ°ΠΌΡΠΉ Π±ΡΡΡΡΡΠΉ ΠΈ ΡΠ°ΠΌΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ. ΠΡΠ»ΠΈ Π΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ A ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ B ΡΠ²Π½ΠΎ, Π²ΡΠ±ΠΈΡΠ°ΡΡ Π½Π°Π΄ΠΎ Π΅Π³ΠΎ. ΠΡΠ»ΠΈ A (ΡΠΎΡΠ½Π΅Π΅ ΡΠΈΠΏ Ρ ΡΠ°Π½ΡΡΠ΅ΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ A ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ) ΠΈ B Π½Π΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ β ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΎΡΠ½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠΌ B ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠΏΠ°Π΄Π΅Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ inconvertible types.
Class::isInstance β ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° A. ΠΠ³ΠΎ ΡΡΠΎΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ A Π² Π½Π°Π»ΠΈΡΠΈΠΈ, Π½ΠΎ B β Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠΈΠΏ. Π’ΠΎ Π΅ΡΡΡ, Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ A a ΠΈ Class bClass, ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ bClass.isInstance(a).
Class::isAssignableFrom β ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Class<A>. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΎΡΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° A Π½Π΅Ρ. bClass.isAssignableFrom(aClass).
ΠΡΡΡ Π΅ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΈΠΌΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΈΠΏΠ° A ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π΅Π³ΠΎ ΠΊ B. ΠΡΠ»ΠΈ ΡΠΈΠΏΡ Π±ΡΠ»ΠΈ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΡΠ±ΡΠΎΡΠΈΡ ClassCastException. ΠΡΠΎ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠΌΡΡΠ»Π°Ρ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡ Π½Π΅Ρ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΠΏΠΈΡΠ°Π½Π° Π² Effective Java Item 57.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ Π½Π° Π½Π°Ρ ΠΊΠ°Π½Π°Π» Π² Max
Please open Telegram to view this post
    VIEW IN TELEGRAM
  π6π₯3