ΠΠ°ΠΊΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Π½Π°Π²Π΅ΡΠΈΡΡ Π½Π° myValue, ΡΡΠΎΠ±Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ»ΠΎΡΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³Π°?
Anonymous Quiz
75%
@Value("${my.property}")
6%
@PropertySource("classpath:application.properties")
2%
@Inject("5{my.property}")
7%
@Autowired("${my.property}")
π8π₯4π€1π1
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ fail-fast ΠΈ fail-safe ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ?
ΠΡΠΎ Π½Π΅ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ, Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ°Π·Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Iterator. ΠΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
Fail-fast β Β«Π±ΡΡΡΡΡΠΉΒ» ΠΈΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΊΠ°ΠΊ-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ, ΠΎΠ½ ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΡΡΠ². Π’Π°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° ArrayList, ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ½ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ConcurrentModificationException. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π½Π΅ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° fail-fast ΠΎΡΠΊΠ°Π·Π°Ρ , ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ·Π½Π°ΠΊ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Fail-safe β Β«ΡΠΌΠ½ΡΠΉΒ» ΠΈΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠ±ΡΡΠ½ΠΎ ΠΏΠ»Π°ΡΠ° Π·Π° ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π½Π΅ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ (Β«ΡΠ»Π°Π±Π°Ρ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡΒ»). ΠΡΠ΅ΡΠ°ΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° ConcurrentHashMap ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΊΠΎΠΏΠΈΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ , ΠΎΠ½ Π½Π΅ Π²ΡΠ±ΡΠΎΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΡΡΡ ΡΠ²Π΅ΠΆΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ»Π°ΡΠ° Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄ΡΡΠ³ΠΈΡ fail-safe ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, Π΄Π΅ΡΠ°Π»ΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ.
Java Guruπ€ #java
ΠΡΠΎ Π½Π΅ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ, Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ°Π·Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Iterator. ΠΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
Fail-fast β Β«Π±ΡΡΡΡΡΠΉΒ» ΠΈΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΊΠ°ΠΊ-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ, ΠΎΠ½ ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΡΡΠ². Π’Π°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° ArrayList, ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ½ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ConcurrentModificationException. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π½Π΅ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° fail-fast ΠΎΡΠΊΠ°Π·Π°Ρ , ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ·Π½Π°ΠΊ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Fail-safe β Β«ΡΠΌΠ½ΡΠΉΒ» ΠΈΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠ±ΡΡΠ½ΠΎ ΠΏΠ»Π°ΡΠ° Π·Π° ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π½Π΅ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ (Β«ΡΠ»Π°Π±Π°Ρ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡΒ»). ΠΡΠ΅ΡΠ°ΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° ConcurrentHashMap ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΊΠΎΠΏΠΈΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ , ΠΎΠ½ Π½Π΅ Π²ΡΠ±ΡΠΎΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΡΡΡ ΡΠ²Π΅ΠΆΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ»Π°ΡΠ° Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄ΡΡΠ³ΠΈΡ fail-safe ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, Π΄Π΅ΡΠ°Π»ΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ.
Java Guruπ€ #java
π14β€4π₯4
ΠΠ°ΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ²ΡΠ·ΠΈ Customer-Order ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΡΠΈ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Order, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ ΠΎΠ΄Π½ΠΈΠΌ Customer?
Anonymous Quiz
21%
CascadeType.ALL
15%
fetch = FetchType.EAGER
10%
optional = false
45%
unique = true
10%
referencedColumnName
π₯10π4β€2
ΠΠ°ΠΊΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ?
Π Java ΠΈΠΌΠ΅Π΅ΡΡΡ 9 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ: ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΡΡΠΌΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ²:
π byte β Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ -2^7 Π΄ΠΎ 2^7-1;
π short β Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ -2^15 Π΄ΠΎ 2^15-1;
π int β Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ -2^31 Π΄ΠΎ 2^31-1;
π long β Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ -2^63 Π΄ΠΎ 2^63-1;
π float β Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ 32 Π±ΠΈΡΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ° IEEE 754;
π double β ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ float, Π½ΠΎ 64 Π±ΠΈΡΠ°;
π char β 16-Π±ΠΈΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Unicode, ΠΎΡ '\u0000'(0) Π΄ΠΎ '\uffff'(65535);
π boolean β true ΠΈΠ»ΠΈ false;
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ»Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½ΡΠ»Π΅Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: 0, 0L, '\u0000', false. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ, ΡΠΏΠΎΡΠΎΠ± Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ΅Π» Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΡΡΠΎΠΈΡ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
ΠΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΠ΅ΠΌΠ° β boxing/unboxing. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ ΡΠΈΠΏ ΡΠ½Π°Π±ΠΆΠ΅Π½ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ. ΠΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π±ΠΎΠ»ΡΡΠΈΠΌ Π·Π°ΡΡΠ°ΡΠ°ΠΌ Π½Π° Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ int ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠΈΠΊΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Object ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² Integer Π±Π΅Π· Π½ΡΠΆΠ΄Ρ β ΡΠ°ΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ° Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ . ΠΡΠ΅ ΠΊΠ»Π°ΡΡΡ-ΠΎΠ±Π΅ΡΡΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π°Π±ΠΎΡ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ².
Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ² β Π²ΠΎΠΏΡΠΎΡ Ρ ΠΏΠΎΠ΄Π²ΠΎΡ ΠΎΠΌ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΠ» Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ JVM, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π² 64-bit HotSpot ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ boolean Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ 1 Π±ΠΈΡ, Π° 8.
Java Guruπ€ #java
Π Java ΠΈΠΌΠ΅Π΅ΡΡΡ 9 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ: ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΡΡΠΌΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ²:
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ»Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½ΡΠ»Π΅Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: 0, 0L, '\u0000', false. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ, ΡΠΏΠΎΡΠΎΠ± Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ΅Π» Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΡΡΠΎΠΈΡ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
ΠΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΠ΅ΠΌΠ° β boxing/unboxing. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ ΡΠΈΠΏ ΡΠ½Π°Π±ΠΆΠ΅Π½ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ. ΠΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π±ΠΎΠ»ΡΡΠΈΠΌ Π·Π°ΡΡΠ°ΡΠ°ΠΌ Π½Π° Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ int ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠΈΠΊΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Object ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² Integer Π±Π΅Π· Π½ΡΠΆΠ΄Ρ β ΡΠ°ΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ° Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ . ΠΡΠ΅ ΠΊΠ»Π°ΡΡΡ-ΠΎΠ±Π΅ΡΡΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π°Π±ΠΎΡ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ².
Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ² β Π²ΠΎΠΏΡΠΎΡ Ρ ΠΏΠΎΠ΄Π²ΠΎΡ ΠΎΠΌ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΠ» Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ JVM, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π² 64-bit HotSpot ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ boolean Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ 1 Π±ΠΈΡ, Π° 8.
Java Guruπ€ #java
Please open Telegram to view this post
VIEW IN TELEGRAM
π11π₯5β€3
Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠ°Π½ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅Ρ?
Anonymous Quiz
13%
0
13%
1
10%
2
21%
3
43%
4
π13π₯6
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ static?
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ static ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ»Π΅ΠΉ, Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠΎΠ².
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ β ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° Π° Π½Π΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠ΄ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ»Π΅Π½Π°ΠΌ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π½Π΅ ΡΡΠ°ΡΡΠ²ΡΡΡ Π² ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅, ΡΠΎ Π΅ΡΡΡ Π²ΡΠ·ΠΎΠ² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°Ρ .
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π±Π»ΠΎΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ, ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΊΠ»Π°ΡΡΠ»ΠΎΠ°Π΄Π΅ΡΠΎΠΌ. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Π½Π΅ΡΠ²Π½ΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π±Π»ΠΎΠΊΠ΅. ΠΠ»ΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ ΠΎΠ½ΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠΌΠΏΠΎΡΡ (static import) ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Π² .java-ΡΠ°ΠΉΠ».
Java Guruπ€ #java
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ static ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ»Π΅ΠΉ, Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠΎΠ².
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ β ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° Π° Π½Π΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠ΄ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ»Π΅Π½Π°ΠΌ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π½Π΅ ΡΡΠ°ΡΡΠ²ΡΡΡ Π² ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅, ΡΠΎ Π΅ΡΡΡ Π²ΡΠ·ΠΎΠ² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°Ρ .
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π±Π»ΠΎΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ, ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΊΠ»Π°ΡΡΠ»ΠΎΠ°Π΄Π΅ΡΠΎΠΌ. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Π½Π΅ΡΠ²Π½ΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π±Π»ΠΎΠΊΠ΅. ΠΠ»ΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ ΠΎΠ½ΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠΌΠΏΠΎΡΡ (static import) ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Π² .java-ΡΠ°ΠΉΠ».
Java Guruπ€ #java
π21π₯4β€2
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
2%
[1, 2, 3, 4, 5, 6]
5%
[2, 4, 6, 8, 10, 12]
5%
[2, 4, 6]
83%
[4, 8, 12]
4%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
π20π₯±13π₯3π1
Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ°?
π private β Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
/Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ²;
π package-private β Π΄ΠΎΡΡΡΠΏ ΠΈΠ· Π²ΡΠ΅Ρ
ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠ°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° Π½Π΅ ΠΈΠΌΠ΅ΡΡ. ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½;
π protected β Π΄ΠΎΡΡΡΠΏ ΠΈΠ· Π²ΡΠ΅Ρ
ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ Π²ΡΠ΅Ρ
Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠ²;
π public β Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ°;
ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ, ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΈ ΠΏΠΎΠ»ΡΠΌ. ΠΠ½ΠΈ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΈ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ API.
Java Guruπ€ #java
ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ, ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΈ ΠΏΠΎΠ»ΡΠΌ. ΠΠ½ΠΈ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΈ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ API.
Java Guruπ€ #java
Please open Telegram to view this post
VIEW IN TELEGRAM
π10π₯4β€3
ΠΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ SOLID Π½Π°ΡΡΡΠ΅Π½ Π² ΠΊΠΎΠ΄Π΅?
Anonymous Quiz
11%
S
13%
O
53%
L
16%
I
7%
D
π13π₯6β€4
ΠΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°
Π‘Π½Π°ΡΠ°Π»Π° ΠΊΠ»Π°ΡΡ ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ, ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ClassLoader ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π² Π±ΡΠ΄ΡΡΠΈΡ ΠΏΠΎΡΡΠ°Ρ . ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΊ Π½Π΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ»ΠΎΠ°Π΄Π΅ΡΠ°.
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π Π±ΡΠ΄ΡΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π»Π΅Π½ΠΈΠ²ΠΎΠΉ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π½ΠΎ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ½Π°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ.
ΠΠ°Π»Π΅Π΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈΡΡΠ΅ΡΡΡ ΡΠ°ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ. ΠΠ°ΠΊ ΠΈ Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π΄Π°Π»ΡΠ½Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ:
1. ΠΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ Π² ΠΊΡΡΠ΅ Π΄Π»Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ;
2. ΠΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ;
3. ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ;
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ β ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² ΠΏΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ.
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅, ΡΠ²ΠΎΠΉΡΡΠ²Π΅Π½Π½Π°Ρ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ². Effective Java Item 17 ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅. ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π²ΡΡΠ΅ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅
Java Guruπ€ #java
Π‘Π½Π°ΡΠ°Π»Π° ΠΊΠ»Π°ΡΡ ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ, ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ClassLoader ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π² Π±ΡΠ΄ΡΡΠΈΡ ΠΏΠΎΡΡΠ°Ρ . ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΊ Π½Π΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ»ΠΎΠ°Π΄Π΅ΡΠ°.
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π Π±ΡΠ΄ΡΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π»Π΅Π½ΠΈΠ²ΠΎΠΉ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π½ΠΎ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ½Π°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ.
ΠΠ°Π»Π΅Π΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈΡΡΠ΅ΡΡΡ ΡΠ°ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ. ΠΠ°ΠΊ ΠΈ Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π΄Π°Π»ΡΠ½Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ:
1. ΠΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ Π² ΠΊΡΡΠ΅ Π΄Π»Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ;
2. ΠΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ;
3. ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ;
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ β ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² ΠΏΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ.
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅, ΡΠ²ΠΎΠΉΡΡΠ²Π΅Π½Π½Π°Ρ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ². Effective Java Item 17 ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅. ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π²ΡΡΠ΅ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅
Java Guruπ€ #java
π24β€7π₯5
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 Π° Π² ΠΊΠΎΠ΄Π΅ ΠΊΠ»Π°ΡΡΠΎΠ².
Π ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΊΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Π²ΠΎΡ : ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ°-ΠΎΠ±Π΅ΡΡΠΊΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠΌ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π°Π½Π±ΠΎΠΊΡΠΈΠ½Π³Ρ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ β Π΄Π°.
Java Guruπ€ #java
ΠΠ»Ρ Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ²-ΠΎΠ±Π΅ΡΡΠΎΠΊ Π½Π°Π΄ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ ΠΊΡΠΎΠΌΠ΅ Float ΠΈ Double ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°, ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ new (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ valueOf).
ΠΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ β ΠΎΠ±Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Boolean, Character Π΄ΠΎ '\u007f' (127) ΠΈ Π²ΡΠ΅ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° ΠΎΡ -128 Π΄ΠΎ 127 Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ. Π‘ Java 7 Π²Π΅ΡΡ Π½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ Integer ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ java.lang.Integer.IntegerCache.high.
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΊΡΡΠΈΡΡΡΡΡΡ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ : BigDecimal, Currency, ΠΏΡΡΡΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ°Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°Π²Π°ΡΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΈ ΠΊΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ JVM Π° Π² ΠΊΠΎΠ΄Π΅ ΠΊΠ»Π°ΡΡΠΎΠ².
Π ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΊΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Π²ΠΎΡ : ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ°-ΠΎΠ±Π΅ΡΡΠΊΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠΌ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π°Π½Π±ΠΎΠΊΡΠΈΠ½Π³Ρ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ β Π΄Π°.
Java Guruπ€ #java
π17β€4π₯4
Π§ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ
ΡΠ°Π½ΡΡΠ΅ΠΉ null?
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΡΠΈΠ½Π°Π»ΡΠ½Π°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ L-value ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° β ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎ-Π²ΡΠΎΡΡΡ , ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ null, Π½ΠΎ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΈΠΏΠ°:
π Π‘ΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Ρ null ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ°;
π ΠΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠΈΠΏΡ-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ (upcast) ΠΈΠ»ΠΈ ΡΠΈΠΏΡ-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΡ (downcast), ΡΡΠΈΡΡΠ²Π°Ρ Π³ΡΠ°Π½ΠΈΡΡ generic-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ;
π ΠΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ»Π΅Π½Π°ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ NullPointerException;
π ΠΡΠΈΠΌΠ΅Π½ΡΡΡ instanceof ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ false
π ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ
Ρ ΡΠΈΠΏΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²
Π-ΡΡΠ΅ΡΡΠΈΡ , ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ»Π΅Π½Π°ΠΌ ΠΊΠ»Π°ΡΡΠ°. Π Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ. ΠΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ, NullPointerException Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ, Π½ΠΎ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅Π½ΠΎΠ² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ°ΠΊ Π½Π΅ Π΄Π΅Π»Π°ΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΊ ΡΡΠ°ΡΠΈΠΊΠ΅ ΡΠ²Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, Π»ΠΈΠ±ΠΎ Π½Π΅ΡΠ²Π½ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° import static.
Java Guruπ€ #java
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΡΠΈΠ½Π°Π»ΡΠ½Π°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ L-value ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° β ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎ-Π²ΡΠΎΡΡΡ , ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ null, Π½ΠΎ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΈΠΏΠ°:
Π-ΡΡΠ΅ΡΡΠΈΡ , ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ»Π΅Π½Π°ΠΌ ΠΊΠ»Π°ΡΡΠ°. Π Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ. ΠΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ, NullPointerException Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ, Π½ΠΎ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅Π½ΠΎΠ² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ°ΠΊ Π½Π΅ Π΄Π΅Π»Π°ΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΊ ΡΡΠ°ΡΠΈΠΊΠ΅ ΡΠ²Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, Π»ΠΈΠ±ΠΎ Π½Π΅ΡΠ²Π½ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° import static.
Java Guruπ€ #java
Please open Telegram to view this post
VIEW IN TELEGRAM
π13β€4π₯4π1
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ enum?
enum β ΡΠΈΠΏ-ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅. ΠΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΎΠΊ Π²ΠΎΠΏΡΠΎΡΠ°, Π²ΡΠ΅ ΠΎΠ½ΠΈ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΡ ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡΡ Π²ΠΎΠΎΠ±ΡΠ΅. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ-ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ. enum Foo Π²ΡΠ΅Π³Π΄Π° Π½Π΅ΡΠ²Π½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Enum<Foo> β ΡΠΎ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅Π»ΡΠ·Ρ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ, Π½ΠΎ Π²ΡΡ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΠ·-Π·Π° generic-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ° ΠΊΡΠΎΠΌΠ΅ Object.
Π―Π²Π»ΡΠ΅ΡΡΡ Comparable (ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ) ΠΈ Serializable (ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ).
ΠΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠ²Π½ΠΎ public static final ΠΈ ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ. ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠΏΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Effective Java ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΈΠ½Π³Π»ΡΠΎΠ½Π° enum.
ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Ρ ΡΠ°Π½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° name ΠΈ ordinal β ΠΈΠΌΡ ΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ values Π²Π΅ΡΠ½Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, valueOf β ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ.
Π€ΠΈΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ.
Java Guruπ€ #java
enum β ΡΠΈΠΏ-ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅. ΠΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΎΠΊ Π²ΠΎΠΏΡΠΎΡΠ°, Π²ΡΠ΅ ΠΎΠ½ΠΈ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΡ ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡΡ Π²ΠΎΠΎΠ±ΡΠ΅. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ-ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ. enum Foo Π²ΡΠ΅Π³Π΄Π° Π½Π΅ΡΠ²Π½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Enum<Foo> β ΡΠΎ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅Π»ΡΠ·Ρ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ, Π½ΠΎ Π²ΡΡ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΠ·-Π·Π° generic-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ° ΠΊΡΠΎΠΌΠ΅ Object.
Π―Π²Π»ΡΠ΅ΡΡΡ Comparable (ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ) ΠΈ Serializable (ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ).
ΠΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠ²Π½ΠΎ public static final ΠΈ ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ. ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠΏΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Effective Java ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΈΠ½Π³Π»ΡΠΎΠ½Π° enum.
ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Ρ ΡΠ°Π½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° name ΠΈ ordinal β ΠΈΠΌΡ ΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ values Π²Π΅ΡΠ½Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, valueOf β ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ.
Π€ΠΈΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ.
Java Guruπ€ #java
π12β€7π₯4
Π£ ΠΊΠ»Π°ΡΡΠ° Π΅ΡΡΡ Π΄Π²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ°, ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ
ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ @Autowired, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°Π½ Π΄Π»Ρ ΠΈΠ½ΠΆΠ΅ΠΊΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ?
Anonymous Quiz
5%
Spring Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΠ±Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°
28%
Spring Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ @Autowired, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°
22%
ΠΡΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Ρ @Autowired - private, Spring Π²ΡΠ±ΡΠΎΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
32%
Spring Π²ΡΠ±Π΅ΡΠ΅Ρ ΡΠΎΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° public, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π΅Ρ @Autowired
13%
ΠΠΎΠ΄ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ
β€3π2π₯2
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΊΠ»Π°ΡΡΠΎΠ²?
Π Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ β Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ClassLoader. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈ ΡΠ°ΠΉΠ»Ρ-ΡΠ΅ΡΡΡΡΡ.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ»Π°ΡΡΠ° (ΡΠΎΡΠ½Π΅Π΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°) ΠΈ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡ Π»ΠΎΠ°Π΄Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π³ΡΡΠ·ΠΈΠ» ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠΎΠ΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²ΡΠ΅Ρ , Π΄Π°ΠΆΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² β Π»Π΅Π½ΠΈΠ²Π°Ρ.
ΠΡΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ· ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° loadClass Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°.
Π URLClassLoader ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°Ρ JVM ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° ΡΠ»ΡΠΆΠΈΡ .class-ΡΠ°ΠΉΠ». ΠΡΡΠ³ΠΈΠ΅ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ: ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ΅ΡΡΡΡ, ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅. Π ΠΏΡΠΈΠΌΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΈΠ· javassist ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π° Π»Π΅ΡΡ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Class. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π½Π΅ Π² ΠΊΡΡΠ΅, Π° Π² permgen/metaspace. Class ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ³ΡΡΠΆΠ΅Π½, ΠΊΠΎΠ³Π΄Π° Π·Π°Π³ΡΡΠ·ΠΈΠ²ΡΠΈΠΉ Π΅Π³ΠΎ ClassLoader ΡΡΠ°Π» ΠΌΡΡΠΎΡΠΎΠΌ.
Java Guruπ€ #java
Π Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ β Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ClassLoader. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈ ΡΠ°ΠΉΠ»Ρ-ΡΠ΅ΡΡΡΡΡ.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ»Π°ΡΡΠ° (ΡΠΎΡΠ½Π΅Π΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°) ΠΈ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡ Π»ΠΎΠ°Π΄Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π³ΡΡΠ·ΠΈΠ» ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠΎΠ΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²ΡΠ΅Ρ , Π΄Π°ΠΆΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² β Π»Π΅Π½ΠΈΠ²Π°Ρ.
ΠΡΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ· ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° loadClass Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°.
Π URLClassLoader ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°Ρ JVM ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° ΡΠ»ΡΠΆΠΈΡ .class-ΡΠ°ΠΉΠ». ΠΡΡΠ³ΠΈΠ΅ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ: ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ΅ΡΡΡΡ, ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅. Π ΠΏΡΠΈΠΌΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΈΠ· javassist ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π° Π»Π΅ΡΡ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Class. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π½Π΅ Π² ΠΊΡΡΠ΅, Π° Π² permgen/metaspace. Class ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ³ΡΡΠΆΠ΅Π½, ΠΊΠΎΠ³Π΄Π° Π·Π°Π³ΡΡΠ·ΠΈΠ²ΡΠΈΠΉ Π΅Π³ΠΎ ClassLoader ΡΡΠ°Π» ΠΌΡΡΠΎΡΠΎΠΌ.
Java Guruπ€ #java
π10β€4π₯3π₯±1
ΠΠ°ΠΊΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²?
Π JVM Π²ΡΡΡΠΎΠ΅Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°:
π Bootstrap β Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π² JVM Π½Π°ΡΠΈΠ²Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠ². ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠ°ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ² java.*;
π Platform β ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ² Java-ΡΠ°Π½ΡΠ°ΠΉΠΌΠ°. ΠΠΎ Java 9 Π½Π°Π·ΡΠ²Π°Π»ΡΡ Extension ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ, ΡΡΠΎ Π΅ΠΌΡ Π±ΡΠ΄ΡΡ Π²ΠΈΠ΄Π½Ρ (Π½ΠΎ Π½Π΅ ΡΠ°ΠΊΡ ΡΡΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠΌ) Π²ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Java SE ΠΈ JDK;
π System (Application) β Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠ»Π°ΡΡΡ ΠΈΠ· classpath ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠ»Π°ΡΡ, ClassLoader ΠΏΡΠΎΠ²Π΅ΡΠΈΡ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½, ΡΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ ΡΠΌΡΡΠ»Π° ΡΡΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ β Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ web-ΡΠ΅ΡΠ²Π΅ΡΠ° Apache Tomcat. ΠΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ»Π°ΡΡ-singleton Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΎΠ±ΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΈ ΡΠΎΠΌ Π³ΡΡΠ·ΡΡΡΡ ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°.
Java Guruπ€ #java
Π JVM Π²ΡΡΡΠΎΠ΅Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°:
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠ»Π°ΡΡ, ClassLoader ΠΏΡΠΎΠ²Π΅ΡΠΈΡ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½, ΡΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
ΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ ΡΠΌΡΡΠ»Π° ΡΡΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ β Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ web-ΡΠ΅ΡΠ²Π΅ΡΠ° Apache Tomcat. ΠΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ»Π°ΡΡ-singleton Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΎΠ±ΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΈ ΡΠΎΠΌ Π³ΡΡΠ·ΡΡΡΡ ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°.
Java Guruπ€ #java
Please open Telegram to view this post
VIEW IN TELEGRAM
π8β€4π₯4
Π§Π΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ?
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ β ΡΠΎΠ»Ρ ΠΠΠ. ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° (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. ΠΠ΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΡΠ°ΠΊΠΎΠΉ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ·ΠΈΡΡ Π½Π°Π±ΠΎΡ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠΈΠΏ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° Π½Π° ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΠΎΠ³ΠΈΠΉ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ.
Java Guruπ€ #java
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ β ΡΠΎΠ»Ρ ΠΠΠ. ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° (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. ΠΠ΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΡΠ°ΠΊΠΎΠΉ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ·ΠΈΡΡ Π½Π°Π±ΠΎΡ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠΈΠΏ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° Π½Π° ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΠΎΠ³ΠΈΠΉ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ.
Java Guruπ€ #java
π14β€6π₯4