en
Feedback
Java Geek

Java Geek

Open in Telegram

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹Π΅ совСты, Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠΈ ΠΈ ΠΊΠΎΠ΄ для Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ пост β€” Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ польза. Π£Ρ‡ΠΈΠΌ Java Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. По всСм вопросам @evgenycarter

Show more
2 379
Subscribers
No data24 hours
-97 days
-3530 days
Posts Archive
Π”Π°ΠΉΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ½ΡΡ‚ΠΈΡŽ «интСрфСйс». КакиС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅ΡŽΡ‚ поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ интСрфСйсов? ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово interface ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ абстрактных классов. ОсновноС ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ интСрфСйса - ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚. Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ интСрфСйса опрСдСляСт ΠΈΠΌΠ΅Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², списки Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Ρ‚ΠΈΠΏΡ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½ΠΎ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ВсС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ нСявно ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ public. Начиная с Java 8 Π² интСрфСйсах Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ default ΠΈ статичСских static ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈ поля. Π’ этом случаС ΠΎΠ½ΠΈ автоматичСски ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ public, статичСскими static ΠΈ нСизмСняСмыми final. @java_geek

КакиС Ρ‚ΠΈΠΏΡ‹ классов Π±Ρ‹Π²Π°ΡŽΡ‚ Π² Java? β˜•οΈ Top level class (ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ класс): βœ”οΈ Abstract class (Абстрактный класс); βœ”οΈ Final class (Π€ΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ класс). β˜•οΈ Interfaces (Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ). β˜•οΈ Enum (ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅). β˜•οΈ Nested class (Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ класс): βœ”οΈ Static nested class (БтатичСский Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ класс); βœ”οΈ Member inner class (ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс); βœ”οΈ Local inner class (Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс); βœ”οΈ Anonymous inner class (Анонимный класс). @java_geek

ΠŸΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 180 градусов Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ΅ Π½Π° 180 градусо
ΠŸΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 180 градусов Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ΅ Π½Π° 180 градусов ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. @java_geek

Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΡΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ Π΄Π²ΡƒΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Collection (addAll(...), removeAll(...), retainAll(...)).
Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΡΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ Π΄Π²ΡƒΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Collection (addAll(...), removeAll(...), retainAll(...)). БиммСтричСская Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ Π΄Π²ΡƒΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ β€” это мноТСство элСмСнтов, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΎΠ±ΠΎΠΈΠΌ исходным коллСкциям. @java_geek

Как Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ default ΠΌΠ΅Ρ‚ΠΎΠ΄ интСрфСйса Π² Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΌ этот интСрфСйс классС? Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово super вмСстС с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ½Ρ‚
Как Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ default ΠΌΠ΅Ρ‚ΠΎΠ΄ интСрфСйса Π² Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΌ этот интСрфСйс классС? Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово super вмСстС с ΠΈΠΌΠ΅Π½Π΅ΠΌ интСрфСйса. @java_geek

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ checked ΠΈ unchecked exception? Π’ Java всС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ дСлятся Π½Π° Π΄Π²Π° Ρ‚ΠΈΠΏΠ°: β€’ checked (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅/провСряСмыС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π±Π»ΠΎΠΊΠΎΠΌ catch ΠΈΠ»ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, throws IOException). НаличиС Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°/ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° провСряСтся Π½Π° этапС компиляции; β€’ unchecked (Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅/нСпровСряСмыС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ), ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ относятся ошибки Error (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, OutOfMemoryError), ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ рСкомСндуСтся ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, прСдставлСнныС классом RuntimeException ΠΈ Π΅Π³ΠΎ наслСдниками (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, NullPointerException), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π±Π»ΠΎΠΊΠΎΠΌ catch ΠΈ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ описанными Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. @java_geek

Collections.min/max Π£Π΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, насколько часто ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ написанный Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΌΠΈΠ½
Collections.min/max Π£Π΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, насколько часто ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ написанный Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ. Казалось Π±Ρ‹, такая Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π·Π°Π΄Π°Ρ‡Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π΄Π°Π²Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½Π°. На самом Π΄Π΅Π»Π΅ ΠΎΠ½Π° ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½Π°: Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Collections.min ΠΈ Collections.max. РаньшС Π±Ρ‹Π»ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π½ΠΎ Π² Java-8 всё стало Π»Π΅Π³Ρ‡Π΅. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠ»ΡŽΡ‡ Π² Map, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠ΄ΠΎΠΌ с ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ. @java_geek

Π—ΡƒΠ±Ρ‡Π°Ρ‚Ρ‹ΠΉ массив Π² Java Π—ΡƒΠ±Ρ‡Π°Ρ‚Ρ‹ΠΉ массив (BitSet) β€” это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ структура Π΄Π°Π½Π½Ρ‹Ρ… для эффСктивного хранСния ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈ
Π—ΡƒΠ±Ρ‡Π°Ρ‚Ρ‹ΠΉ массив Π² Java Π—ΡƒΠ±Ρ‡Π°Ρ‚Ρ‹ΠΉ массив (BitSet) β€” это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ структура Π΄Π°Π½Π½Ρ‹Ρ… для эффСктивного хранСния ΠΈ манипулирования Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π±ΠΈΡ‚ΠΎΠ². ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ собой массив Π±ΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ увСличиваСтся динамичСски ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ добавлСния элСмСнтов. Π—Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСньшС памяти, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… для хранСния Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π±ΠΈΡ‚Π°ΠΌΠΈ: установка, сброс, инвСрсия, логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π—ΡƒΠ±Ρ‡Π°Ρ‚Ρ‹ΠΉ массив ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡: поиск Π² мноТСствах, Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ состояний ΠΈ Ρ„Π»Π°Π³ΠΎΠ², оптимизация расхода памяти ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΏΡ€ΠΈ нСобходимости эффСктивно Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ большим количСством Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. @java_geek

ForkJoinPool Π­Ρ‚ΠΎ класс, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² JDK 7, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой спСциализированный ΠΏΡƒΠ» ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΠΏΠ°Ρ€
ForkJoinPool Π­Ρ‚ΠΎ класс, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² JDK 7, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой спСциализированный ΠΏΡƒΠ» ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния рСкурсивных Π·Π°Π΄Π°Ρ‡. ForkJoinPool автоматичСски управляСт созданиСм ΠΈ использованиСм ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² для выполнСния ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ ΠΈ обСспСчиваСт эффСктивноС распрСдСлСниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ основан Π½Π° Π΄Π΅Π»Π΅Π½ΠΈΠΈ большой Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ объСдинСнии для получСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. КаТдая ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, Ρ‡Ρ‚ΠΎ позволяСт эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ доступныС рСсурсы процСссора. @java_geek

КакиС Π΅ΡΡ‚ΡŒ особСнности класса String? Π­Ρ‚ΠΎ нСизмСняСмый (immutable) ΠΈ Ρ„ΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…; ВсС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса String JVM Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² ΠΏΡƒΠ»Π΅ строк; ΠžΠ±ΡŠΠ΅ΠΊΡ‚ класса String ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ; МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ + для ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк; Начиная с Java 7 строки ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² конструкции switch. @java_geek

ΠœΠ΅Ρ‚ΠΎΠ΄ Iterable.forEach ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, ΠΈ выполняСт лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ action для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΅Π΅ элСмСнта. @java_ge
ΠœΠ΅Ρ‚ΠΎΠ΄ Iterable.forEach ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, ΠΈ выполняСт лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ action для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΅Π΅ элСмСнта. @java_geek

Как устроСн HashMap? HashMap состоит ΠΈΠ· Β«ΠΊΠΎΡ€Π·ΠΈΠ½Β» (bucket). Π‘ тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Β«ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹Β» β€” это элСмСнты массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят ссылки Π½Π° списки элСмСнтов. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β», вычисляСт Ρ…ΡΡˆ-ΠΊΠΎΠ΄ ΠΊΠ»ΡŽΡ‡Π°, Π½Π° основании ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ вычисляСтся Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹ (Π½ΠΎΠΌΠ΅Ρ€ ячСйки массива), Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт. Если ΠΊΠΎΡ€Π·ΠΈΠ½Π° пустая, Ρ‚ΠΎ Π² Π½Π΅Π΅ сохраняСтся ссылка Π½Π° вновь добавляСмый элСмСнт, Ссли ΠΆΠ΅ Ρ‚Π°ΠΌ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ элСмСнт, Ρ‚ΠΎ происходит ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΏΠΎ ссылкам ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, Π² поисках послСднСго элСмСнта, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ ставится ссылка Π½Π° вновь Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт. Если Π² спискС Π±Ρ‹Π» Π½Π°ΠΉΠ΄Π΅Π½ элСмСнт с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, Ρ‚ΠΎ ΠΎΠ½ замСняСтся. @java_geek

Lombok β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π·Π° вас Π±ΠΎΠΉΠ»Π΅Ρ€ΠΏΠ»Π΅ΠΉΡ‚ (ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ) ΠΊΠΎΠ΄. Π”Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ классы ускорСнно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅
Lombok β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π·Π° вас Π±ΠΎΠΉΠ»Π΅Ρ€ΠΏΠ»Π΅ΠΉΡ‚ (ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ) ΠΊΠΎΠ΄. Π”Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ классы ускорСнно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Π½Π°Π΄ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΅Ρ‚Ρ‚Π΅Ρ€Ρ‹ ΠΈ сСттСры, всё дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ нСизмСняСмыС классы вмСстС с Ρ‚ΠΈΠΏΠΎΠ²Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ Π³Π΅Ρ‚Ρ‚Π΅Ρ€Π°ΠΌΠΈ ΠΊ Π½ΠΈΠΌ β€” с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ @Value. ВсС поля класса Π±ΡƒΠ΄ΡƒΡ‚ Ρ„ΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ сдСланы ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌΠΈ. ΠžΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ: https://projectlombok.org/ @java_geek

ΠžΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±Π»ΠΎΠΊΠ° try-catch-finally try β€” это ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π°Ρ‡Π°Π»Π° Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»
ΠžΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±Π»ΠΎΠΊΠ° try-catch-finally try β€” это ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π°Ρ‡Π°Π»Π° Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ. catch β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово для ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π°Ρ‡Π°Π»Π° Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² случаС ΠΈΡ… возникновСния. finally β€” слово для ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ помСщаСтся послС послСднСго Π±Π»ΠΎΠΊΠ° catch. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаётся Π² Π±Π»ΠΎΠΊ finally Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π»ΠΎ Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. ΠžΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄ конструкции ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅. @java_geek

Класс FileReader FileReader β€” это класс Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ java .io, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для чтСния ΠΏΠΎΡ‚ΠΎΠΊΠ° символов ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ². Π­
Класс FileReader FileReader β€” это класс Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ java .io, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для чтСния ΠΏΠΎΡ‚ΠΎΠΊΠ° символов ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΎΡ‚ класс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π»ΠΈΠ±ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для дСкодирования Π±Π°ΠΉΡ‚ΠΎΠ² Π² символы. Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса: read() β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ символ ΠΈΠ»ΠΈ -1, Ссли ΠΏΠΎΡ‚ΠΎΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½; read(char [] charBuffer, int offset, int length) β€” считываСт ΠΏΠΎΡ‚ΠΎΠΊ символов ΠΈ сохраняСт ΠΈΡ… Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ символьном Π±ΡƒΡ„Π΅Ρ€Π΅. offset - это позиция, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ начинаСтся Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, Π° length - это ΠΎΠ±Ρ‰Π΅Π΅ количСство символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Он ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ большоС количСство ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… символов Π»ΠΈΠ±ΠΎ -1, Ссли ΠΏΠΎΡ‚ΠΎΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½; ready() β€” сообщаСт, Π³ΠΎΡ‚ΠΎΠ² Π»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ. БчитаСтся, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ Π³ΠΎΡ‚ΠΎΠ², Ссли Π΅Π³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ Π½Π΅ пуст; getEncoding() β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ символов, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ; close() β€” Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ освобоТдаСт связанныС с Π½ΠΈΠΌ систСмныС рСсурсы. @java_geek

Класс FileReader FileReader β€” это класс Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ java .io, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для чтСния ΠΏΠΎΡ‚ΠΎΠΊΠ° символов ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ². Π­
Класс FileReader FileReader β€” это класс Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ java .io, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для чтСния ΠΏΠΎΡ‚ΠΎΠΊΠ° символов ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΎΡ‚ класс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π»ΠΈΠ±ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для дСкодирования Π±Π°ΠΉΡ‚ΠΎΠ² Π² символы. Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса: read() β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ символ ΠΈΠ»ΠΈ -1, Ссли ΠΏΠΎΡ‚ΠΎΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½; read(char [] charBuffer, int offset, int length) β€” считываСт ΠΏΠΎΡ‚ΠΎΠΊ символов ΠΈ сохраняСт ΠΈΡ… Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ символьном Π±ΡƒΡ„Π΅Ρ€Π΅. offset - это позиция, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ начинаСтся Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, Π° length - это ΠΎΠ±Ρ‰Π΅Π΅ количСство символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Он ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ большоС количСство ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… символов Π»ΠΈΠ±ΠΎ -1, Ссли ΠΏΠΎΡ‚ΠΎΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½; ready() β€” сообщаСт, Π³ΠΎΡ‚ΠΎΠ² Π»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ. БчитаСтся, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ Π³ΠΎΡ‚ΠΎΠ², Ссли Π΅Π³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ Π½Π΅ пуст; getEncoding() β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ символов, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ; close() β€” Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ освобоТдаСт связанныС с Π½ΠΈΠΌ систСмныС рСсурсы. @java_geek

Π“Π΄Π΅ ΠΈ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ конструктор? ΠŸΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ (ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом private, скрытый) конструктор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌ статичСским ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса. Π’Π°ΠΊΠΆΠ΅ доступ ΠΊ Π½Π΅ΠΌΡƒ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ классам ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΈΡ… Π½ΡƒΠΆΠ΄. @java_geek

Map.putIfAbsent РаньшС Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Π² Map, Ссли Π΅Π΅ Ρ‚Π°ΠΌ Π½Π΅Ρ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅(см 1 Ρ‡Π°ΡΡ‚ΡŒ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅).
Map.putIfAbsent РаньшС Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Π² Map, Ссли Π΅Π΅ Ρ‚Π°ΠΌ Π½Π΅Ρ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅(см 1 Ρ‡Π°ΡΡ‚ΡŒ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅). Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС стало ΠΊΡƒΠ΄Π° ΠΏΡ€ΠΎΡ‰Π΅(см 2 Ρ‡Π°ΡΡ‚ΡŒ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅). @java_geek

Collection.removeIf ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, ΠΈ удаляСт Ρ‚Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ filter. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π² ΠΎΠ΄Π½
Collection.removeIf ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, ΠΈ удаляСт Ρ‚Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ filter. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π² ΠΎΠ΄Π½Ρƒ строку удаляСм ΠΈΠ· списка всС числа большС 5. @java_geek

Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° инициализация статичСских/нСстатичСских ΠΏΠΎΠ»Π΅ΠΉ? β€’ БтатичСскиС поля ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ объявлСнии, Π² статичСском ΠΈΠ»ΠΈ нСстатичСском Π±Π»ΠΎΠΊΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. β€’ НСстатичСскиС поля ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ объявлСнии, Π² нСстатичСском Π±Π»ΠΎΠΊΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π² конструкторС. @java_geek