π20π10π2π1
InputStream, OutputStream ΠΈ ΠΈΡ
buffered Π²Π΅ΡΡΠΈΠΈ
ΠΠ°Π»Π΅Π΅, Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ InputStream β is, OutputStream β os
is β ΠΏΠΎΠ±Π°ΠΉΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠΎΠΊΠ΅ΡΠ°/ΡΠ°ΠΉΠ»Π°/ΡΡΡΠΎΠΊΠΈ/Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°
os β ΠΏΠΎΠ±Π°ΠΉΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ Π² ΡΠΎΠΊΠ΅Ρ/ΡΠ°ΠΉΠ»/Π΄ΡΡΠ³ΠΎΠΉ Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²
Buffered-Π²Π΅ΡΡΠΈΠΈ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ΅ΡΠ΅Π· ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π±ΡΡΡΠ΅Ρ
ΠΠ°Π»Π΅Π΅, Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ InputStream β is, OutputStream β os
is β ΠΏΠΎΠ±Π°ΠΉΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠΎΠΊΠ΅ΡΠ°/ΡΠ°ΠΉΠ»Π°/ΡΡΡΠΎΠΊΠΈ/Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°
os β ΠΏΠΎΠ±Π°ΠΉΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ Π² ΡΠΎΠΊΠ΅Ρ/ΡΠ°ΠΉΠ»/Π΄ΡΡΠ³ΠΎΠΉ Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²
Buffered-Π²Π΅ΡΡΠΈΠΈ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ΅ΡΠ΅Π· ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π±ΡΡΡΠ΅Ρ
π24
ΠΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π»Π΅ΠΆΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ "ΠΌΠ΅ΡΠΎΠ΄-Π²ΡΠ·ΠΎΠ²"?
Anonymous Quiz
17%
ΡΠ°Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
23%
ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
45%
ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ final, static ΠΈΠ»ΠΈ private
15%
ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
π€33π11π1
Serializable, serialVersionUID
ΠΠ»Π°ΡΡΡ, ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ/Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ marker ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Serializable (ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅ serialVersionUID Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Ρ ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΊΠ»Π°ΡΡΠ° Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ» ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½. ΠΡΠ»ΠΈ serialVersionUID ΠΈΠ· ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ c serialVersionUID ΠΊΠ»Π°ΡΡΠ° Β«Π½Π° ΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄Π°Β» β ΡΠΎ ΠΊΠΈΠ΄Π°Π΅ΡΡΡ exception)
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, ΡΠΆΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Ρ.ΠΊ ΡΠ΅ΠΌ ΠΆΠ΅ Jackson/GSON Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΠ»Π°ΡΡΡ, ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ/Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ marker ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Serializable (ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅ serialVersionUID Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Ρ ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΊΠ»Π°ΡΡΠ° Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ» ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½. ΠΡΠ»ΠΈ serialVersionUID ΠΈΠ· ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ c serialVersionUID ΠΊΠ»Π°ΡΡΠ° Β«Π½Π° ΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄Π°Β» β ΡΠΎ ΠΊΠΈΠ΄Π°Π΅ΡΡΡ exception)
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, ΡΠΆΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Ρ.ΠΊ ΡΠ΅ΠΌ ΠΆΠ΅ Jackson/GSON Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
π21
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΡΠΊΡΠ°Π½?
Anonymous Quiz
9%
5
40%
12
8%
0
9%
ΠΡΠΈΠ±ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
35%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
π24π5π₯3π€¬3
ΠΠ°ΠΊΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
6%
10
15%
11
11%
12
36%
17
18%
18
15%
ΠΡΠΈΠ±ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
π21π7
try-with-resources. AutoCloseable
try-with-resources β ΠΊΡΠ°ΡΠΊΠ°Ρ Π·Π°ΠΌΠ΅Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌΡ try..catch..finally. ΠΠ°ΠΊΡΡΠ²Π°Π΅Ρ ΡΠ΅ΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅ΠΊΡΠΈΠΈ try-with-resources. Π Π΅ΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ AutoCloseable.
Β«Π Π΅ΡΡΡΡΒ» Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ β ΡΡΠΎ ΠΊΠ»Π°ΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ cΠΎΠ±ΠΎΠΉ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅/cΠΎΠΊΠ΅Ρ/ΡΠ°ΠΉΠ»/ΠΏΠΎΡΠΎΠΊ
try-with-resources β ΠΊΡΠ°ΡΠΊΠ°Ρ Π·Π°ΠΌΠ΅Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌΡ try..catch..finally. ΠΠ°ΠΊΡΡΠ²Π°Π΅Ρ ΡΠ΅ΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅ΠΊΡΠΈΠΈ try-with-resources. Π Π΅ΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ AutoCloseable.
Β«Π Π΅ΡΡΡΡΒ» Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ β ΡΡΠΎ ΠΊΠ»Π°ΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ cΠΎΠ±ΠΎΠΉ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅/cΠΎΠΊΠ΅Ρ/ΡΠ°ΠΉΠ»/ΠΏΠΎΡΠΎΠΊ
try (InputStream is = new FileInputStream("/path/to/file.txt")) {
...
}π23
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΡΠΊΡΠ°Π½?
Anonymous Quiz
31%
1
31%
2
23%
3
15%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
π27π7π3
ΠΡΠ»ΠΈΡΠΈΠ΅ checked-exception/unchecked-exception. Error, Exception, RuntimeException
β’ Checked exceptions (ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ). Π JDK ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ Exception. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ, Π»ΠΈΠ±ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°, Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΡΠ΅. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΈΡΠ°ΡΡΡΡ Π΄ΡΡΠ½ΡΠΌ ΡΠΎΠ½ΠΎΠΌ, Ρ.ΠΊ ΠΊΠΎΠ΄ ΡΠΎ ΠΌΠ½-Π²ΠΎΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ try..catch ΠΏΠ»ΠΎΡ ΠΎ ΡΠΈΡΠ°Π±Π΅Π»Π΅Π½, ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Π²ΡΠ·ΠΎΠ²Π° Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.
β’ Unchecked exceptions (Π½Π΅ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ). Π JDK ΡΡΠΎ ΠΊΠ»Π°ΡΡ RuntimeException. ΠΠΎΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ, Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΡΠ΅Π· try..catch, ΠΈΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ ΡΠ΅ΡΠ΅Π· throws. ΠΠΈΠ½ΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° β Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Β«ΡΠ²Π°Π½Π΅ΡΒ»
β’ Error β ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΈΠ΄Π°Π΅ΠΌΡΠ΅ JVM Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ (OutOfMemoryError), ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΡΠΊΠ° (StackOverflowError) ΠΈ.Ρ.Π΄
β’ Checked exceptions (ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ). Π JDK ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ Exception. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ, Π»ΠΈΠ±ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°, Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΡΠ΅. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΈΡΠ°ΡΡΡΡ Π΄ΡΡΠ½ΡΠΌ ΡΠΎΠ½ΠΎΠΌ, Ρ.ΠΊ ΠΊΠΎΠ΄ ΡΠΎ ΠΌΠ½-Π²ΠΎΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ try..catch ΠΏΠ»ΠΎΡ ΠΎ ΡΠΈΡΠ°Π±Π΅Π»Π΅Π½, ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Π²ΡΠ·ΠΎΠ²Π° Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.
β’ Unchecked exceptions (Π½Π΅ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ). Π JDK ΡΡΠΎ ΠΊΠ»Π°ΡΡ RuntimeException. ΠΠΎΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ, Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΡΠ΅Π· try..catch, ΠΈΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ ΡΠ΅ΡΠ΅Π· throws. ΠΠΈΠ½ΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° β Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Β«ΡΠ²Π°Π½Π΅ΡΒ»
β’ Error β ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΈΠ΄Π°Π΅ΠΌΡΠ΅ JVM Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ (OutOfMemoryError), ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΡΠΊΠ° (StackOverflowError) ΠΈ.Ρ.Π΄
π28π₯1π€1π€©1
@javalib - telegram ΠΊΠ°Π½Π°Π» Ρ ΡΠ°ΠΌΡΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π΄Π»Ρ Java ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ².
ΠΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΠ°ΠΌΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡπ₯ Π ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅Π»ΠΈΠΌΡΡ Π»ΡΡΡΠΈΠΌΠΈ ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌΠΈ ΡΡΠ°ΡΡΡΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄ΡΡΠ³ΠΈΠΌ.
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π²ΡΡ ΡΠ°ΠΌΠΎΠ΅ ΡΠ²Π΅ΠΆΠ΅Π΅!
ΠΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΠ°ΠΌΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡπ₯ Π ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅Π»ΠΈΠΌΡΡ Π»ΡΡΡΠΈΠΌΠΈ ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌΠΈ ΡΡΠ°ΡΡΡΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄ΡΡΠ³ΠΈΠΌ.
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π²ΡΡ ΡΠ°ΠΌΠΎΠ΅ ΡΠ²Π΅ΠΆΠ΅Π΅!
π6π₯2β‘1
ΠΠ°ΠΊΠΈΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ?
Anonymous Quiz
28%
A action
32%
B action
32%
ΠΠΎΠ΄ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ
9%
ΠΡΠΈΠ±ΠΊΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
π23
ΠΠ°ΠΊΠΈΠ΅ Π±ΡΠ²Π°ΡΡ ΡΠΈΠΏΡ ΠΏΠ°ΠΌΡΡΠΈ Π² Java?
Π Java ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΏΠ°ΠΌΡΡΠΈ - heap ΠΈ stack. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΡ ΡΠ²ΠΎΠΉ Π²ΠΈΠ΄ Π΄Π°Π½Π½ΡΡ , ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡ Π΅ΠΌΠ΅. Heap Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ JRE ΠΊΠ»Π°ΡΡΡ, stack Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ.
Π Java ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΏΠ°ΠΌΡΡΠΈ - heap ΠΈ stack. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΡ ΡΠ²ΠΎΠΉ Π²ΠΈΠ΄ Π΄Π°Π½Π½ΡΡ , ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡ Π΅ΠΌΠ΅. Heap Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ JRE ΠΊΠ»Π°ΡΡΡ, stack Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ.
π32π€¬1
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
16%
1
29%
2
47%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
7%
ΠΡΠΈΠ±ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
π17π₯±4π€¬1
Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ heap ΠΈ stack?
Heap ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ stack ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π»ΠΈΡΡ Π³Π»Π°Π²Π½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ(ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ new) - ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² heap, Π° Π² stack Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ:
Stack - ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΡΡ Π΅ΠΌΠ΅ LIFO(Last-In-First-Out). Ρ heap Π²Π΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ ΠΈΠ· stack.
Heap Π² ΡΠ°Π·Ρ Π±ΠΎΠ»ΡΡΠ΅ stack, stack ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΡΡΡΡΠ΅Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΡΡΠΊΡΡΡΠ΅, stack "ΠΆΠΈΠ²Π΅Ρ" ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ heap "ΠΆΠΈΠ²Π΅Ρ" Π²Π΅ΡΡ "ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ»" ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Heap ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ stack ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π»ΠΈΡΡ Π³Π»Π°Π²Π½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ(ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ new) - ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² heap, Π° Π² stack Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ:
Person person = new Person();ΡΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Person(), ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ½ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² heap, Π° person ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² stack.
Stack - ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΡΡ Π΅ΠΌΠ΅ LIFO(Last-In-First-Out). Ρ heap Π²Π΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ ΠΈΠ· stack.
Heap Π² ΡΠ°Π·Ρ Π±ΠΎΠ»ΡΡΠ΅ stack, stack ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΡΡΡΡΠ΅Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΡΡΠΊΡΡΡΠ΅, stack "ΠΆΠΈΠ²Π΅Ρ" ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ heap "ΠΆΠΈΠ²Π΅Ρ" Π²Π΅ΡΡ "ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ»" ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
π35π€¬1
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
24%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΡΡΠΎΠΊΠ΅ 2
11%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΡΡΠΎΠΊΠ΅ 7
16%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΡΡΠΎΠΊΠ΅ 10
8%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΡΡΠΎΠΊΠ΅ 15
7%
ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΡΡΠΎΠΊΠ΅ 17
34%
ΠΠΎΠ΄ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ
π13π€¬1π1