Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
24%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
4%
RuntimeException
59%
1 2 3 4
3%
1| 2| 3| 4|
10%
ClassCastException
π14π₯2β€1
ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ super?
ΠΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°, super ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°:
1. ΠΠ°Π΄Π°ΡΡ Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ generic-ΡΠΈΠΏΠ°: Consumer<? super Number>
2. ΠΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΠΊΡΡΡ (shadowed) ΡΠ»Π΅Π½Π°ΠΌΠΈ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ° ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ: int foo = super.foo
3. ΠΡΠ·Π²Π°ΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ: SubClass() { super("subclass param"); }
4. Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΠΈ, ΡΡΠΎΡΠ½ΠΈΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠΈΠΏ (Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅)
Java Guruπ€ #java
ΠΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°, super ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°:
1. ΠΠ°Π΄Π°ΡΡ Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ generic-ΡΠΈΠΏΠ°: Consumer<? super Number>
2. ΠΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΠΊΡΡΡ (shadowed) ΡΠ»Π΅Π½Π°ΠΌΠΈ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ° ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ: int foo = super.foo
3. ΠΡΠ·Π²Π°ΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ: SubClass() { super("subclass param"); }
4. Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΠΈ, ΡΡΠΎΡΠ½ΠΈΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠΈΠΏ (Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅)
Java Guruπ€ #java
π14β€4π₯3
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
35%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
5%
Java Top!
42%
Jao
8%
Jv T!
11%
RuntimeException
π₯12π6
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄?
ΠΡΠ²Π΅ΡΠ°Ρ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Ρ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ.
ΠΠ° ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΡ (overload) ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π΅ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΡΠ°Π·Π½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² β ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠΎ ΡΡΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.
ΠΠ΅ΡΠΎΠ΄ Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ static ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ, Π° Π½Π΅ ΠΊ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ. ΠΠ»Ρ Π½Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (override) Π² Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎ, Π² Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ static ΠΌΠ΅ΡΠΎΠ΄ Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΠΎΠΉ, ΠΊΠ°ΠΊ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π° ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΠΈΠ΅ (shadowing). Π ΡΠ°ΠΊΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Override, Π² Π½ΡΠΌ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ super.
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° Π½Π΅ ΡΠΈΠΏΠ°, ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. ΠΠ΅Π· Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π½Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ ΡΠΈΠΏΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ Π½Π΅ ΠΎ ΡΠΈΠΏΠ΅ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ β Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ, ΡΠΎ ΠΌΠ΅ΡΠΎΠ΄-ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΠΈΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΡΠ·ΠΎΠ²Π΅ΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π² IDE ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
Java Guruπ€ #java
ΠΡΠ²Π΅ΡΠ°Ρ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Ρ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ.
ΠΠ° ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΡ (overload) ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π΅ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΡΠ°Π·Π½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² β ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠΎ ΡΡΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.
ΠΠ΅ΡΠΎΠ΄ Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ static ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ, Π° Π½Π΅ ΠΊ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ. ΠΠ»Ρ Π½Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (override) Π² Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎ, Π² Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ static ΠΌΠ΅ΡΠΎΠ΄ Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΠΎΠΉ, ΠΊΠ°ΠΊ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π° ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΠΈΠ΅ (shadowing). Π ΡΠ°ΠΊΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Override, Π² Π½ΡΠΌ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ super.
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° Π½Π΅ ΡΠΈΠΏΠ°, ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. ΠΠ΅Π· Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π½Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ ΡΠΈΠΏΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ Π½Π΅ ΠΎ ΡΠΈΠΏΠ΅ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ β Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ, ΡΠΎ ΠΌΠ΅ΡΠΎΠ΄-ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΠΈΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΡΠ·ΠΎΠ²Π΅ΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π² IDE ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
Java Guruπ€ #java
π19π₯4β€2
ΠΠ°ΠΊ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΠ΅ ΠΈΠΌΠΏΠΎΡΡΡ?
β’ ΠΠ»Π°ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½Ρ Π±Π΅Π· ΠΈΠΌΠΏΠΎΡΡΠ°. ΠΡΠ»ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠΉ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ-ΡΠΎΡΠ΅Π΄ΠΎΠΌ ΠΏΠΎ ΠΏΠ°ΠΊΠ΅ΡΡ β ΡΠΎΡΠ΅Π΄ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°Π΅ΡΡΡ. ΠΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ, Π±Π΅Π· ΠΎΡΠΈΠ±ΠΊΠΈ.
β’ ΠΡΠ»ΠΈ Π² class-ΡΠ°ΠΉΠ»Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ Π·Π΄Π΅ΡΡ ΠΆΠ΅ ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ β ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
β’ ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ»Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ. ΠΡΠ΄Π΅Ρ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ warning ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ ΠΈΠΌΠΏΠΎΡΡΠ΅.
β’ ΠΠ»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠΎΠ² ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°. ΠΠ±ΡΡΠ½ΡΠ΅ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠΌΠΏΠΎΡΡΡ Π½Π΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ β Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
β’ Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ²/ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· ΠΈΠΌΠΏΠΎΡΡΠΎΠ². ΠΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΈΡ ΠΏΠΎΠ»Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ, Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ°.
β’ ΠΠ»Π°ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½Ρ Π±Π΅Π· ΠΈΠΌΠΏΠΎΡΡΠ°. ΠΡΠ»ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠΉ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ-ΡΠΎΡΠ΅Π΄ΠΎΠΌ ΠΏΠΎ ΠΏΠ°ΠΊΠ΅ΡΡ β ΡΠΎΡΠ΅Π΄ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°Π΅ΡΡΡ. ΠΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ, Π±Π΅Π· ΠΎΡΠΈΠ±ΠΊΠΈ.
β’ ΠΡΠ»ΠΈ Π² class-ΡΠ°ΠΉΠ»Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ Π·Π΄Π΅ΡΡ ΠΆΠ΅ ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ β ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
β’ ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ»Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ. ΠΡΠ΄Π΅Ρ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ warning ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ ΠΈΠΌΠΏΠΎΡΡΠ΅.
β’ ΠΠ»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠΎΠ² ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°. ΠΠ±ΡΡΠ½ΡΠ΅ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠΌΠΏΠΎΡΡΡ Π½Π΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ β Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
β’ Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ²/ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· ΠΈΠΌΠΏΠΎΡΡΠΎΠ². ΠΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΈΡ ΠΏΠΎΠ»Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ, Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ°.
π12π₯4
Π ΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ ΠΈ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ?
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π΄ΠΎ private Π½Π΅ Π΄Π°Π΅Ρ Π²ΡΠ·Π²Π°ΡΡ Π΅Π³ΠΎ ΠΈΠ· Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ. ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΡΠΈΠ½Π³Π»ΡΠΎΠ½ΠΎΠ². ΠΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡΠΈΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·Π²Π½Π΅.
ΠΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ final, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΡΠ΅ΡΠΈΡ ΠΎΡ Π½Π΅Π³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ, ΡΠΆΠ΅ Π±Π΅Π· ΠΈΠ·Π»ΠΈΡΠ½Π΅Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠ½Π°ΡΡΠΆΠΈ. ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ Π΄Π²ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ².
Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· private ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π°Π±ΠΎΠ΅. ΠΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ. ΠΡΠ±Π»ΠΈΡΠ½ΡΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Β«ΠΏΠ°Π±Π»ΠΈΠΊ ΠΌΠΎΡΠΎΠ·ΠΎΠ²Β» β Π΄Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π±Ρ.
Java Guruπ€ #java
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π΄ΠΎ private Π½Π΅ Π΄Π°Π΅Ρ Π²ΡΠ·Π²Π°ΡΡ Π΅Π³ΠΎ ΠΈΠ· Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ. ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΡΠΈΠ½Π³Π»ΡΠΎΠ½ΠΎΠ². ΠΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡΠΈΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·Π²Π½Π΅.
ΠΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ final, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΡΠ΅ΡΠΈΡ ΠΎΡ Π½Π΅Π³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ, ΡΠΆΠ΅ Π±Π΅Π· ΠΈΠ·Π»ΠΈΡΠ½Π΅Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠ½Π°ΡΡΠΆΠΈ. ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ Π΄Π²ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ².
Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· private ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π°Π±ΠΎΠ΅. ΠΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ. ΠΡΠ±Π»ΠΈΡΠ½ΡΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Β«ΠΏΠ°Π±Π»ΠΈΠΊ ΠΌΠΎΡΠΎΠ·ΠΎΠ²Β» β Π΄Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π±Ρ.
Java Guruπ€ #java
π18π₯4β€3
ΠΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ raw types?
Π‘Π½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ raw type. Π Java ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°ΡΡ generic-ΡΠΈΠΏΡ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΈΠΏΠ°-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. Π’Π°ΠΊΠ°Ρ ΡΠ·ΡΠΊΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π²Π°Π»ΠΈΠ΄Π½Π°, Π½ΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠΈΡΠΊΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ heap pollution. ΠΠΉ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΎΡΠ²ΡΡΠ°Π»ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°Π½Π΅Π΅. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ raw types Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ β ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ·ΡΠΊΠ° ΡΠ²Π½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ: ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ.
ΠΡΡΡ Π²ΡΠ΅Π³ΠΎ ΡΡΠΈ ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠΏ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ:
β’ Π¦Π΅Π»Π΅Π²Π°Ρ Π²Π΅ΡΡΠΈΡ Java < 5.0 (2002 Π³ΠΎΠ΄ ΠΈ ΡΠ°Π½Π΅Π΅ β Π²ΡΡΠ΄ Π»ΠΈ ΡΡΠΎ Π²Π°Ρ ΡΠ»ΡΡΠ°ΠΉ);
β’ Π Π»ΠΈΡΠ΅ΡΠ°Π»Π΅ ΠΊΠ»Π°ΡΡΠ°. List<String>.class Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ List.class;
β’ Π ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ instanceof. ΠΠΌΠ΅ΡΡΠΎ instanceof Set<Integer> Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ instanceof Set.
Java Guruπ€ #java
Π‘Π½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ raw type. Π Java ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°ΡΡ generic-ΡΠΈΠΏΡ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΈΠΏΠ°-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. Π’Π°ΠΊΠ°Ρ ΡΠ·ΡΠΊΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π²Π°Π»ΠΈΠ΄Π½Π°, Π½ΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠΈΡΠΊΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ heap pollution. ΠΠΉ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΎΡΠ²ΡΡΠ°Π»ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°Π½Π΅Π΅. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ raw types Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ β ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ·ΡΠΊΠ° ΡΠ²Π½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ: ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ.
ΠΡΡΡ Π²ΡΠ΅Π³ΠΎ ΡΡΠΈ ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠΏ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ:
β’ Π¦Π΅Π»Π΅Π²Π°Ρ Π²Π΅ΡΡΠΈΡ Java < 5.0 (2002 Π³ΠΎΠ΄ ΠΈ ΡΠ°Π½Π΅Π΅ β Π²ΡΡΠ΄ Π»ΠΈ ΡΡΠΎ Π²Π°Ρ ΡΠ»ΡΡΠ°ΠΉ);
β’ Π Π»ΠΈΡΠ΅ΡΠ°Π»Π΅ ΠΊΠ»Π°ΡΡΠ°. List<String>.class Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ List.class;
β’ Π ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ instanceof. ΠΠΌΠ΅ΡΡΠΎ instanceof Set<Integer> Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ instanceof Set.
Java Guruπ€ #java
π₯11π4β€1
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΠΌΠ΅ΡΠΎΠ΄, Π΅ΡΠ»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ-Π²Π»Π°Π΄Π΅Π»ΡΡΠ°?
ΠΡΠ²Π΅Ρ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π·Π° ΡΠ΅ΡΠΌΠΈΠ½Π°ΠΌΠΈ ΡΡΡΠ»ΠΊΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄.
ΠΠ»Ρ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅, ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, Π° Π½Π΅ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½ΠΈΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° A Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΡΠΎΠ½ΡΡ.
Π€Π°ΠΊΡ ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π² ΡΡΠΎΠΌ Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π²Π΅ΡΡΠΈ Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅. Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ Π²ΡΠ·ΠΎΠ²Π°. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ ΠΊΠΎΠΏΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄. ΠΠ½Π° Π²Π΅Π΄Π΅Ρ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π½Π΅ Ρ ΡΠ°Π½ΡΡΠ΅ΠΉ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΆΠ΅ Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅Ρ Π½Π° ΡΡΡΠ»ΠΊΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°.
ΠΠ»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π° Π² Π±Π°ΠΉΡΠΊΠΎΠ΄Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ invokedynamic. ΠΠ΄Π½Π°ΠΊΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ ΠΠΠ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ.
Java Guruπ€ #java
ΠΡΠ²Π΅Ρ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π·Π° ΡΠ΅ΡΠΌΠΈΠ½Π°ΠΌΠΈ ΡΡΡΠ»ΠΊΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄.
ΠΠ»Ρ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅, ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, Π° Π½Π΅ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½ΠΈΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° A Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΡΠΎΠ½ΡΡ.
Π€Π°ΠΊΡ ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π² ΡΡΠΎΠΌ Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π²Π΅ΡΡΠΈ Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅. Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ Π²ΡΠ·ΠΎΠ²Π°. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ ΠΊΠΎΠΏΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄. ΠΠ½Π° Π²Π΅Π΄Π΅Ρ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π½Π΅ Ρ ΡΠ°Π½ΡΡΠ΅ΠΉ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΆΠ΅ Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅Ρ Π½Π° ΡΡΡΠ»ΠΊΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°.
ΠΠ»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π° Π² Π±Π°ΠΉΡΠΊΠΎΠ΄Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ invokedynamic. ΠΠ΄Π½Π°ΠΊΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ ΠΠΠ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ.
Java Guruπ€ #java
π12π₯4β€3
ΠΠ°ΠΊ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ?
for/while. ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ±: ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡ 0 Π΄ΠΎ size(). ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π°, Ρ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΡΠ°Π³ΠΎΠΌ. ΠΠ»Π°ΡΠ° Π·Π° ΡΡΠΎ β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΈΠ±ΠΈΡΡΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄.
Iterator. ΠΠΠ-ΡΠΏΠΎΡΠΎΠ±: ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ iterator() ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ-ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ Ρ Π½Π΅Π³ΠΎ next() ΠΏΠΎΠΊΠ° hasNext() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true. Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°, ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. Π’Π°ΠΊΠΎΠΉ Β«ΠΎΠ±ΡΠ΅ΠΊΡ-ΠΈΡΠ΅ΡΠ°ΡΠΈΡΒ» ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΠΊΠΎΠ΄, Π½Π΅ ΠΎΡΠ΄Π°Π²Π°Ρ ΡΠ°ΠΌΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ. ΠΡΡ Π΅ΡΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
for Iterable. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ Π°Ρ Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Ρ ΠΎΠ΄. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° Π½Π΅ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅.
Π‘ΡΡΠΈΠΌΡ. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΡΡΠΈΠΌ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π² Π½ΡΠΌ. ΠΡΠΎΠΌΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ forEach(), ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΡΠ΅ΠΉ ΠΌΠΎΡΡΡ Java Steam API β ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΠ° ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π·Π²Π΅ΡΠΈΡΡΡΠΉ.
Π€ΡΠ½ΠΊΡΠΈΠΈ Java 8. Π‘ ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ. Π£ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΠΈ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ forEach Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΈ replaceAll Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ°ΠΊ ΡΠΎ ΡΡΡΠΈΠΌΠ°ΠΌΠΈ, ΠΎΠ½ΠΈ Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ, Π½ΠΎ Π±Π΅Π· ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠΈΠΌΠΎΠ². ΠΠ½ΡΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ ΡΠΈΠΊΠ»Ρ for.
Java Guruπ€ #java
for/while. ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ±: ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡ 0 Π΄ΠΎ size(). ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π°, Ρ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΡΠ°Π³ΠΎΠΌ. ΠΠ»Π°ΡΠ° Π·Π° ΡΡΠΎ β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΈΠ±ΠΈΡΡΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄.
Iterator. ΠΠΠ-ΡΠΏΠΎΡΠΎΠ±: ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ iterator() ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ-ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ Ρ Π½Π΅Π³ΠΎ next() ΠΏΠΎΠΊΠ° hasNext() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true. Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°, ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. Π’Π°ΠΊΠΎΠΉ Β«ΠΎΠ±ΡΠ΅ΠΊΡ-ΠΈΡΠ΅ΡΠ°ΡΠΈΡΒ» ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΠΊΠΎΠ΄, Π½Π΅ ΠΎΡΠ΄Π°Π²Π°Ρ ΡΠ°ΠΌΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ. ΠΡΡ Π΅ΡΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
for Iterable. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ Π°Ρ Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Ρ ΠΎΠ΄. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° Π½Π΅ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅.
Π‘ΡΡΠΈΠΌΡ. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΡΡΠΈΠΌ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π² Π½ΡΠΌ. ΠΡΠΎΠΌΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ forEach(), ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΡΠ΅ΠΉ ΠΌΠΎΡΡΡ Java Steam API β ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΠ° ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π·Π²Π΅ΡΠΈΡΡΡΠΉ.
Π€ΡΠ½ΠΊΡΠΈΠΈ Java 8. Π‘ ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ. Π£ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΠΈ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ forEach Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΈ replaceAll Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ°ΠΊ ΡΠΎ ΡΡΡΠΈΠΌΠ°ΠΌΠΈ, ΠΎΠ½ΠΈ Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ, Π½ΠΎ Π±Π΅Π· ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠΈΠΌΠΎΠ². ΠΠ½ΡΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ ΡΠΈΠΊΠ»Ρ for.
Java Guruπ€ #java
π14β€6π₯4
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Π°?
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π² .java ΡΠ°ΠΉΠ»Π΅ Π±ΡΠ» Π½Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΈ ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΎ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠ»Π°. ΠΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°.
Protected ΠΈ private ΠΊΠ»Π°ΡΡΠΎΠ² Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π΅ Π±ΡΠ²Π°Π΅Ρ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π° Π²ΠΎΡ Π½Π° package-protected ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ Π±Π΅Π· ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π΄ΠΎΡΡΡΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΈΠΌΡ. Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΡΠ΄ΠΎΠΌ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π° (ΠΈΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ) ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π±Π΅Π· ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π΄ΠΎΡΡΡΠΏΠ°, Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. ΠΠ½ΠΈ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²Π½ΡΡΡΠΈ Π²ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
Π’Π°ΠΊ ΡΡΠΎ ΠΎΡΠ²Π΅Ρ β ΠΌΠΎΠΆΠ΅Ρ.
Java Guruπ€ #java
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π² .java ΡΠ°ΠΉΠ»Π΅ Π±ΡΠ» Π½Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΈ ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΎ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠ»Π°. ΠΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°.
Protected ΠΈ private ΠΊΠ»Π°ΡΡΠΎΠ² Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π΅ Π±ΡΠ²Π°Π΅Ρ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π° Π²ΠΎΡ Π½Π° package-protected ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ Π±Π΅Π· ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π΄ΠΎΡΡΡΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΈΠΌΡ. Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΡΠ΄ΠΎΠΌ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π° (ΠΈΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ) ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π±Π΅Π· ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π΄ΠΎΡΡΡΠΏΠ°, Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. ΠΠ½ΠΈ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²Π½ΡΡΡΠΈ Π²ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
Π’Π°ΠΊ ΡΡΠΎ ΠΎΡΠ²Π΅Ρ β ΠΌΠΎΠΆΠ΅Ρ.
Java Guruπ€ #java
π15π₯4β€2π1
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
30%
ΠΠΎΠ΄ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ, ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
3%
ΠΠΎΠ΄ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ, Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ protected
51%
ΠΠΎΠ΄ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ, Ρ.ΠΊ. ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ default Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌ Π² Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ
ΠΊΠ»Π°ΡΡΠ°Ρ
7%
ΠΠΎΠ΄ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ, Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ abstract
8%
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΊΠΎΠ΄ Π·Π°ΠΏΡΡΡΠΈΡΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ
π19π₯5β€1
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΡΠΈΠΌΡ?
ΠΠ°ΠΊΠ΅Ρ java.util.stream β ΡΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅. ΠΠ½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ (ΠΊΡΠΎΠΌΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ) Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ β ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΡ, ΠΏΠ΅ΡΠ΅ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°, ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ .
Π’ΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΠ½ΡΡΠΈΡ Java Stream API β ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½Π°Ρ (intermediate), ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½Π°Ρ (terminal) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ , ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ. Π‘Π°ΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ.
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡ ΡΡΡΠΈΠΌ. ΠΠ° ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
Π’Π΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Β«ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΡΒ» ΠΏΠΎΡΠΎΠΊ. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π°, Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π²Π·ΡΡΡΠΌ ΡΡΡΠΈΠΌΠΎΠΌ. Π‘ΡΡΠΈΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π»Π΅Π½ΠΈΠ²ΠΎ β Π²ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π΅ Π½Π°ΡΠ½Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ.
Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΈΠΌΠΎΠ² β map-reduce. Map β ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, reduce β ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½Π°Ρ.
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π°Π±ΠΎΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΠΏΠΎΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π»ΠΈΡΡΡ Π½Π° Π΄Π°Π»ΡΠ½Π΅ΠΉΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ. ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° β ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ StreamOpFlag:
β’ SORTED β ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ;
β’ ORDERED β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΠ±Ρ ΠΎΠ΄Π°;
β’ DISTINCT β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π±Π΅Π· Π΄ΡΠ±Π»Π΅ΠΉ;
β’ SIZED β ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ;
β’ SHORT_CIRCUIT β ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΊΠΎΡΠΎΡΠΊΠΎΠΌΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ.
Java Guruπ€ #java
ΠΠ°ΠΊΠ΅Ρ java.util.stream β ΡΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅. ΠΠ½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ (ΠΊΡΠΎΠΌΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ) Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ β ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΡ, ΠΏΠ΅ΡΠ΅ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°, ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ .
Π’ΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΠ½ΡΡΠΈΡ Java Stream API β ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½Π°Ρ (intermediate), ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½Π°Ρ (terminal) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ , ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ. Π‘Π°ΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ.
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡ ΡΡΡΠΈΠΌ. ΠΠ° ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
Π’Π΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Β«ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΡΒ» ΠΏΠΎΡΠΎΠΊ. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π°, Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π²Π·ΡΡΡΠΌ ΡΡΡΠΈΠΌΠΎΠΌ. Π‘ΡΡΠΈΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π»Π΅Π½ΠΈΠ²ΠΎ β Π²ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π΅ Π½Π°ΡΠ½Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ.
Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΈΠΌΠΎΠ² β map-reduce. Map β ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, reduce β ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½Π°Ρ.
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π°Π±ΠΎΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΠΏΠΎΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π»ΠΈΡΡΡ Π½Π° Π΄Π°Π»ΡΠ½Π΅ΠΉΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ. ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° β ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ StreamOpFlag:
β’ SORTED β ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ;
β’ ORDERED β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΠ±Ρ ΠΎΠ΄Π°;
β’ DISTINCT β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π±Π΅Π· Π΄ΡΠ±Π»Π΅ΠΉ;
β’ SIZED β ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ;
β’ SHORT_CIRCUIT β ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΊΠΎΡΠΎΡΠΊΠΎΠΌΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ.
Java Guruπ€ #java
π7β€5π₯3
ΠΠ°ΠΊΠΈΠ΅ Π±ΡΠ²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΎΠΉ Π² Java?
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π§ΠΈΡΠ»Π° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π² Java Ρ ΡΠ°Π½ΡΡΡΡ Π² Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ. ΠΠ· ΡΡΠΎΠ³ΠΎ Π²ΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΠ³Π΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠ°Π΄Π°Π΅Ρ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΠΊΡΡΠ³Ρ β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ, Π»ΠΈΠ±ΠΎ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. Π’Π°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (underflow/overflow).
Π Π΅ΡΠ΅Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠΈΠΌΠ°, ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΡΡΡΡΠΈΠΊΡΠΎΠΌ *Exact ΠΈΠ· ΠΊΠ»Π°ΡΡΠ΅ Math. ΠΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠΎΡΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ JVM ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠ½ΠΎ. ΠΡΠ΅Π΄Π΅Π»Ρ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠΎ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΡΡ ΡΡΡΠΎΠ³ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ strictfp Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ IEEE 754. ΠΠ° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡ ΡΠ΄ΡΠΈΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡΡΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ArithmeticException.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π° Π½ΠΎΠ»Ρ. ΠΡΠΎ ΠΆΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΡΠΎΡΠ°ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ· Math.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ β ΠΏΠΎΠΊΡΡΡΡ ΠΊΠΎΠ΄ Unit-ΡΠ΅ΡΡΠ°ΠΌΠΈ.
Java Guruπ€ #java
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π§ΠΈΡΠ»Π° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π² Java Ρ ΡΠ°Π½ΡΡΡΡ Π² Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ. ΠΠ· ΡΡΠΎΠ³ΠΎ Π²ΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΠ³Π΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠ°Π΄Π°Π΅Ρ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΠΊΡΡΠ³Ρ β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ, Π»ΠΈΠ±ΠΎ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. Π’Π°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (underflow/overflow).
Π Π΅ΡΠ΅Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠΈΠΌΠ°, ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΡΡΡΡΠΈΠΊΡΠΎΠΌ *Exact ΠΈΠ· ΠΊΠ»Π°ΡΡΠ΅ Math. ΠΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠΎΡΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ JVM ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠ½ΠΎ. ΠΡΠ΅Π΄Π΅Π»Ρ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠΎ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΡΡ ΡΡΡΠΎΠ³ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ strictfp Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ IEEE 754. ΠΠ° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡ ΡΠ΄ΡΠΈΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡΡΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ArithmeticException.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π° Π½ΠΎΠ»Ρ. ΠΡΠΎ ΠΆΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΡΠΎΡΠ°ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ· Math.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ β ΠΏΠΎΠΊΡΡΡΡ ΠΊΠΎΠ΄ Unit-ΡΠ΅ΡΡΠ°ΠΌΠΈ.
Java Guruπ€ #java
π8β€4π₯3
ΠΡΠ»ΠΈΡΠ°ΡΡΡΡ Π»ΠΈ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ?
Java ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΠ° Π² ΠΎΠΏΠ΅ΡΠ°Π½Π΄. ΠΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ +=, &=, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ β ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ (compound assignment). Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ Π±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
Π£ ΡΠ°ΠΊΠΈΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠΉ Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠΎΠ»Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ. ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΠΌ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ x += y β ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ x = (XType)(x + y). Π’ΠΎ Π΅ΡΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΠ°ΠΌΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΊ ΡΠΈΠΏΡ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°.
ΠΠ΅Π·Π½Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄Π° (ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ).
Java Guruπ€ #java
Java ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΠ° Π² ΠΎΠΏΠ΅ΡΠ°Π½Π΄. ΠΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ +=, &=, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ β ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ (compound assignment). Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ Π±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
Π£ ΡΠ°ΠΊΠΈΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠΉ Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠΎΠ»Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ. ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΡΠ°ΠΌ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ x += y β ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ x = (XType)(x + y). Π’ΠΎ Π΅ΡΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΠ°ΠΌΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΊ ΡΠΈΠΏΡ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°.
ΠΠ΅Π·Π½Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄Π° (ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ).
Java Guruπ€ #java
π26π₯6β€3
ΠΠΈΡΠ°Π΅Ρ Π»ΠΈ var ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ?
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ var ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ Π² Java 10. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ var Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΠΏΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΊ Π½Π΅ΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΏΠΎΠ² (type inference). Π’ΠΈΠΏ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ· ΡΠΎΠ³ΠΎ, ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ.
ΠΡΡΡΠ΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ²ΠΎΠ΄ΠΎΠ². ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ var Π² ΠΏΠΎΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ°, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΈ Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ Π΅ΡΠ΅ ΠΊΡΠΎΠΌΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΎΠ±ΡΠ·Π°Π½Π° Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ β Π²Π°ΡΠΈΠ°Π½ΡΡ var x; ΠΈΠ»ΠΈ var x = null; Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ.
Π Π³Π»Π°Π²Π½ΠΎΠ΅ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ β ΠΊ ΠΊΠΎΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Ρ ΡΠ°ΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΏΠΎΠ·Π΄Π½Π΅Π΅. Π ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΠ²Π΅Ρ: Π½Π΅Ρ, Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠΈΠΏ β ΡΡΡΠΎΠ³ΠΈΠΉ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ.
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΡΠΏΡΡΠ΅Π½ΠΈΠ΅ β Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ diamond operator. Π ΠΎΠ±ΡΡΠ½ΡΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°Ρ Π² Π½ΡΠΌ Π²ΡΠ²Π΅Π΄Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ generic-ΡΠΈΠΏ, Π½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ var ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΠΈ ΡΠΈΠΏΠΎΠΌ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Object.
Java Guruπ€ #java
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ var ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ Π² Java 10. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ var Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΠΏΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΊ Π½Π΅ΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΏΠΎΠ² (type inference). Π’ΠΈΠΏ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ· ΡΠΎΠ³ΠΎ, ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ.
ΠΡΡΡΠ΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ²ΠΎΠ΄ΠΎΠ². ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ var Π² ΠΏΠΎΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ°, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΈ Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ Π΅ΡΠ΅ ΠΊΡΠΎΠΌΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΎΠ±ΡΠ·Π°Π½Π° Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ β Π²Π°ΡΠΈΠ°Π½ΡΡ var x; ΠΈΠ»ΠΈ var x = null; Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ.
Π Π³Π»Π°Π²Π½ΠΎΠ΅ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ β ΠΊ ΠΊΠΎΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Ρ ΡΠ°ΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΏΠΎΠ·Π΄Π½Π΅Π΅. Π ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΠ²Π΅Ρ: Π½Π΅Ρ, Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠΈΠΏ β ΡΡΡΠΎΠ³ΠΈΠΉ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ.
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΡΠΏΡΡΠ΅Π½ΠΈΠ΅ β Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ diamond operator. Π ΠΎΠ±ΡΡΠ½ΡΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°Ρ Π² Π½ΡΠΌ Π²ΡΠ²Π΅Π΄Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ generic-ΡΠΈΠΏ, Π½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ var ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΠΈ ΡΠΈΠΏΠΎΠΌ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Object.
Java Guruπ€ #java
π₯9π5β€1
Π§ΡΠΎ Π»ΡΡΡΠ΅, ArrayList ΠΈΠ»ΠΈ LinkedList?
Π‘Π°ΠΌΡΠΉ ΠΈΠ·Π±ΠΈΡΡΠΉ Π²ΠΎΠΏΡΠΎΡ. ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π·Π½Π°Π½ΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ (ΠΊΠΈΡΠΊΠΈ ArrayList, ΠΊΠΈΡΠΊΠΈ LinkedList) ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΡΡΠΈΡ ΡΠ°Π·Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ . Π Π²ΠΎΠΏΡΠΎΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Vector β ΠΏΠ΅ΡΠ΅ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ArrayList, ΠΊΠΎΡΠΎΡΡΠΉ Π»ΡΡΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Collections.synchronizedList().
ArrayList Ρ ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, LinkedList Π² Π΄Π²ΡΡΠ²ΡΠ·Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅. ΠΠ· ΡΡΠΎΠ³ΠΎ Π²ΡΡΠ΅ΠΊΠ°Π΅Ρ ΡΠ°Π·Π½ΠΈΡΠ° Π² ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ°Π·Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ: ArrayList Π»ΡΡΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΈ ΡΠΎΡΡΠΎΠΌ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ capacity, LinkedList β Π½Π° ΠΊΡΠ°ΡΡ . Π ΡΠ΅Π»ΠΎΠΌ ΠΎΠ±ΡΡΠ½ΠΎ ArrayList Π»ΡΡΡΠ΅.
Π‘ΡΠΎΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΡΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΊΡΠ°ΡΡ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Deque: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΠΊΠΎΠ»ΡΡΠ΅Π²ΠΎΠΉ Π±ΡΡΠ΅Ρ ArrayDeque.
Java Guruπ€ #java
Π‘Π°ΠΌΡΠΉ ΠΈΠ·Π±ΠΈΡΡΠΉ Π²ΠΎΠΏΡΠΎΡ. ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π·Π½Π°Π½ΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ (ΠΊΠΈΡΠΊΠΈ ArrayList, ΠΊΠΈΡΠΊΠΈ LinkedList) ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΡΡΠΈΡ ΡΠ°Π·Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ . Π Π²ΠΎΠΏΡΠΎΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Vector β ΠΏΠ΅ΡΠ΅ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ArrayList, ΠΊΠΎΡΠΎΡΡΠΉ Π»ΡΡΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Collections.synchronizedList().
ArrayList Ρ ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, LinkedList Π² Π΄Π²ΡΡΠ²ΡΠ·Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅. ΠΠ· ΡΡΠΎΠ³ΠΎ Π²ΡΡΠ΅ΠΊΠ°Π΅Ρ ΡΠ°Π·Π½ΠΈΡΠ° Π² ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ°Π·Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ: ArrayList Π»ΡΡΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΈ ΡΠΎΡΡΠΎΠΌ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ capacity, LinkedList β Π½Π° ΠΊΡΠ°ΡΡ . Π ΡΠ΅Π»ΠΎΠΌ ΠΎΠ±ΡΡΠ½ΠΎ ArrayList Π»ΡΡΡΠ΅.
Π‘ΡΠΎΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΡΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΊΡΠ°ΡΡ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Deque: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΠΊΠΎΠ»ΡΡΠ΅Π²ΠΎΠΉ Π±ΡΡΠ΅Ρ ArrayDeque.
Java Guruπ€ #java
π9β€4π₯3π³2
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
19%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
31%
Static method in A
41%
Static method in B
2%
RuntimeException
7%
Static method in A, Static method in B
π₯12π8π€£4β€2