uz
Feedback
Java Geek

Java Geek

Kanalga Telegram’da oβ€˜tish

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

Ko'proq ko'rsatish
2 378
Obunachilar
Ma'lumot yo'q24 soatlar
-97 kunlar
-3530 kunlar
Postlar arxiv
Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SimpleDateFormat SimpleDateFormat β€” это ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ класс для парсинга ΠΈ форматирования Π΄Π°Ρ‚Ρ‹ Π² J
Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SimpleDateFormat SimpleDateFormat β€” это ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ класс для парсинга ΠΈ форматирования Π΄Π°Ρ‚Ρ‹ Π² Java. SimpleDateFormat позволяСт Π½Π°Ρ‡Π°Ρ‚ΡŒ с Π²Ρ‹Π±ΠΎΡ€Π° Π»ΡŽΠ±Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… шаблонов для форматирования Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. @java_geek

Fields initialization Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ поля класса ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ случаСв ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π² этом ΠΎΡ‡Π΅Π½ΡŒ сильно Ρƒ
Fields initialization Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ поля класса ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ случаСв ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π² этом ΠΎΡ‡Π΅Π½ΡŒ сильно ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹. Всё-Ρ‚Π°ΠΊΠΈ для этих Ρ†Π΅Π»Π΅ΠΉ Ρƒ Вас Π΅ΡΡ‚ΡŒ конструктор. Π’ случаС явного указания Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для ΠΏΠΎΠ»Π΅ΠΉ класса β€” ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π΄ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° конструктора, Ρ‡Ρ‚ΠΎ Π²Π»Π΅Ρ‡Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ расходы Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Ρƒ Вас Π½Π΅Ρ‚ нСобходимости ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ значСниями, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° сразу послС создания ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π° Π’Ρ‹ устанавливаСтС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния для ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ. Ну ΠΈ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ поля класса всСгда ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ значСниями ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. @java_geek

Log field Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΈΠ΅ Π² классС? ВсСгда опрСдСляйтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π»ΠΎΠ³Π° ΠΊΠ°ΠΊ static final. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…: Ρƒ вас Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅
Log field Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΈΠ΅ Π² классС? ВсСгда опрСдСляйтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π»ΠΎΠ³Π° ΠΊΠ°ΠΊ static final. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…: Ρƒ вас Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°Ρ… сСриализации ΠΈ дСсСриализации ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π°. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…: инициализация происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 Ρ€Π°Π·, вмСсто постоянной ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ΠΎΠ² класса. @java_geek

Data reading Π§Ρ‚ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ Π² этих Π½Π΅Π²ΠΈΠ½Π½Ρ‹Ρ… строках? Π”Π° Π² ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹
Data reading Π§Ρ‚ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ Π² этих Π½Π΅Π²ΠΈΠ½Π½Ρ‹Ρ… строках? Π”Π° Π² ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считываСм. ВмСсто Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ β€” ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сокСт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· post запроса, всС… Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π΅ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ всё Π² массив Π±Π°ΠΉΡ‚ΠΎΠ², Ρƒ вас попросту ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ памяти. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π»ΡŽΠ±Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ частям. И всСгда слСдитС Π·Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎ возмоТности ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΈΡ…. @java_geek

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строки Π² Π΄Π°Ρ‚Ρƒ Класс SimpleDateFormat ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π² частности parse(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Jav
ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строки Π² Π΄Π°Ρ‚Ρƒ Класс SimpleDateFormat ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π² частности parse(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Java ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΌ пСрСвСсти строку Π² Π΄Π°Ρ‚Ρƒ соотвСтствии с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ, хранящимся Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ SimpleDateFormat. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅. @java_geek

Какой самый Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ€Π°Π²Π½Ρ‹ Π»ΠΈ Π΄Π²Π° значСния Ρ‚ΠΈΠΏΠ° double? НаиболСС Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это β€” ΠΈ
Какой самый Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ€Π°Π²Π½Ρ‹ Π»ΠΈ Π΄Π²Π° значСния Ρ‚ΠΈΠΏΠ° double? НаиболСС Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ DΠΎuble.соmpare() ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с Π½ΡƒΠ»Π΅ΠΌ. @java_geek

Какая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ с этим ΠΊΠΎΠ΄ΠΎΠΌ? ΠžΡ‚Π²Π΅Ρ‚: Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ с компилируСтся. Π­Ρ‚ΠΎΡ‚ вопрос Π½Π° Π·Π½Π°Π½ΠΈΠ΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π² Π΄Π°Π½
Какая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ с этим ΠΊΠΎΠ΄ΠΎΠΌ? ΠžΡ‚Π²Π΅Ρ‚: Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ с компилируСтся. Π­Ρ‚ΠΎΡ‚ вопрос Π½Π° Π·Π½Π°Π½ΠΈΠ΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС FileNotFoundException унаслСдован ΠΎΡ‚ IOException, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ catch Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ catch ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ. @java_geek

ΠœΠ΅Ρ‚ΠΎΠ΄ matches() Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли эта строка соотвСтствуСт Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ рСгулярному Π²Ρ‹
ΠœΠ΅Ρ‚ΠΎΠ΄ matches() Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли эта строка соотвСтствуСт Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ. @java_geek

Google-json (GSON) Google-json, ΠΊΠ°ΠΊ понятно ΠΈΠ· названия, Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прямиком ΠΈΠ· Google. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·
Google-json (GSON) Google-json, ΠΊΠ°ΠΊ понятно ΠΈΠ· названия, Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прямиком ΠΈΠ· Google. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ JSON, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Java-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ выглядит сСриализация ΠΈ дСсСриализация с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GSON(см ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ). Как Π²ΠΈΠ΄Π½ΠΎ, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ минимального количСства Π»Π΅Π³ΠΊΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ОсобСнно эта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° пригодится ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с RESTful прилоТСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ прСимущСствСнно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ json. @java_geek

ΠŸΠΈΡ€Π°ΠΌΠΈΠ΄Π°Π»ΡŒΠ½Π°Ρ сортировка ΠŸΠΈΡ€Π°ΠΌΠΈΠ΄Π°Π»ΡŒΠ½Π°Ρ сортировка являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ сортировки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ элСмСнты Π² массивС, ΠΊΠ°ΠΊ
ΠŸΠΈΡ€Π°ΠΌΠΈΠ΄Π°Π»ΡŒΠ½Π°Ρ сортировка ΠŸΠΈΡ€Π°ΠΌΠΈΠ΄Π°Π»ΡŒΠ½Π°Ρ сортировка являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ сортировки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ элСмСнты Π² массивС, ΠΊΠ°ΠΊ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ. Она Π±Π΅Ρ€Π΅Ρ‚ элСмСнты массива ΠΈ вставляСт ΠΈΡ… Π² ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ. ПослС построСния ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹, ΠΈΠ· Π½Π΅Π΅ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ наибольшиС элСмСнты ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Π΅Ρ† массива, Π³Π΄Π΅ ΠΈ находятся Π² отсортированном Π²ΠΈΠ΄Π΅. ΠžΠ±Ρ‰Π΅Π΅ врСмя сортировки расчитываСтся ΠΏΠΎ O(N logN) для N элСмСнтов. @java_geek

NullPointer Exception Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ указатСля Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² Java довольно часто ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ
NullPointer Exception Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ указатСля Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² Java довольно часто ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строчку ΠΊΠΎΠ΄Π°: int noOfStudents = school.listStudents().count; Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ school окаТСтся Ρ€Π°Π²Π΅Π½ Null ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ listStudents Π²Π΅Ρ€Π½Π΅Ρ‚ Null, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ NullPointerException. Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Java являСтся ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Null Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…. @java_geek

Interface for Consts ΠžΡ‡Π΅Π½ΡŒ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ интСрфСйсы для описания констант. Π­Ρ‚ΠΎ Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ООП. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ
Interface for Consts ΠžΡ‡Π΅Π½ΡŒ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ интСрфСйсы для описания констант. Π­Ρ‚ΠΎ Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ООП. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π½Π΅ большС Π½Π΅ мСньшС. Π­Ρ‚ΠΎΡ‚ ΠΏΡƒΠ½ΠΊΡ‚ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»Π΅Π½, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ компиляции Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅, Π½ΠΎ всС ΠΆΠ΅ java это ООП язык ΠΈ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ². @java_geek

ΠœΠ΅Ρ‚ΠΎΠ΄ fill() ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ int ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ цСлочислСнного массива. Π’Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚
ΠœΠ΅Ρ‚ΠΎΠ΄ fill() ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ int ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ цСлочислСнного массива. Π’Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован всСми Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (byte, short, int ΠΈ Ρ‚.Π΄.). @java_geek

Класс-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΈ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ср
Класс-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΈ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Π° Π½Π΅ ΠΈΡ… значСния. @java_geek

Bit Set Π§Ρ‚ΠΎ, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с массивами Π±ΠΈΡ‚ΠΎΠ²? Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для этого boolean[]? Для эт
Bit Set Π§Ρ‚ΠΎ, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с массивами Π±ΠΈΡ‚ΠΎΠ²? Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для этого boolean[]? Для этого Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ эффСктивный с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния использования памяти ΠΌΠ΅Ρ‚ΠΎΠ΄. Π­Ρ‚ΠΎ класс BitSet, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π½Π°ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ массивы Π±ΠΈΡ‚ΠΎΠ² ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΈ. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с boolean[] ΠΎΠ½ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π² 8 Ρ€Π°Π· мСньшС памяти. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ массивами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ and, or, xor. Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… массива Π±ΠΈΡ‚ΠΎΠ². ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ провСсти Π½Π° Π½ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ xor. Π£Ρ‚ΠΎΡ‡Π½ΡŽ, опСрация xor, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ массивС, Π½ΠΎ Π½Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²Π° экзСмпляра BitSet ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° элСмСнты, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. НаконСц, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ xor Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· BitSet ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΡƒΠΊΠ°Π·Π°Π² Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ BitSet ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. @java_geek

ШСстнадцатСричный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π—Π° этим Π½Π΅Ρ‚ большой истории. Иногда Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строки Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π±Π°ΠΉΡ‚Ρ‹
ШСстнадцатСричный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π—Π° этим Π½Π΅Ρ‚ большой истории. Иногда Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строки Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π±Π°ΠΉΡ‚Ρ‹ ΠΈΠ»ΠΈ символы. Начиная с Java 17 Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс HexFormat. ΠŸΡ€ΠΎΡΡ‚ΠΎ создайтС экзСмпляр HexFormat, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ byte Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ строку. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ строку Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π±Π°ΠΉΡ‚ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅. @java_geek

Generics ВсСгда ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваши ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ классы. Π­Ρ‚ΠΎ избавляСт сразу ΠΎΡ‚ 2-Ρ… ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: ΠΏΡ€
Generics ВсСгда ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваши ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ классы. Π­Ρ‚ΠΎ избавляСт сразу ΠΎΡ‚ 2-Ρ… ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ошибок выполнСния. Π’Π°ΠΊΠΆΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π»Π΅Π³Ρ‡Π΅ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ. ОсобСнно часто этим ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π°ΡŽΡ‚ ΠΌΠΎΠΈ Π°ΠΌΠ΅Ρ€ΠΈΠΊΠ°Π½ΠΎ-индусскиС ΠΊΠΎΠ»Π»Π΅Π³ΠΈ. Если ΠΆΠ΅ ваша коллСкция Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ <?>, Π° Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ <? extends someType> Ρ‚ΠΎΠ³Π΄Π° зная ΠΎΠ±Ρ‰ΠΈΠΉ класс/интСрфСйс для всСх ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ΠΎΠ² Π²Π°ΠΌ Π½Π΅ прийдСтся Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ instanceOf. @java_geek

БтатичСский Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ класс Π² Java БтатичСский Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс β€” это Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся статичСским Ρ‡Π»Π΅Π½ΠΎΠΌ Π²Π½
БтатичСский Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ класс Π² Java БтатичСский Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс β€” это Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся статичСским Ρ‡Π»Π΅Π½ΠΎΠΌ внСшнСго класса. Доступ ΠΊ Π½Π΅ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π±Π΅Π· создания экзСмпляра внСшнСго класса с использованиСм Π΄Ρ€ΡƒΠ³ΠΈΡ… статичСских элСмСнтов. Как ΠΈ статичСскиС Ρ‡Π»Π΅Π½Ρ‹, статичСский Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ класс Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ доступа ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ экзСмпляра ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ внСшнСго класса. Бинтаксис статичСского Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ класса Π² Java выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: class MyOuter { static class Nested_Demo { } } Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ экзСмпляра статичСского Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ класса Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отличаСтся ΠΎΡ‚ экзСмпляра Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ класса. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСскиС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ классы. @java_geek

Π§Ρ‚ΠΎ Π·Π° Π·Π²Π΅Ρ€ΡŒ "Matcher"? Класс Java Matcher (java.util.regex.Matcher) создан для поиска Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ мноТСства Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ рСгуляр
Π§Ρ‚ΠΎ Π·Π° Π·Π²Π΅Ρ€ΡŒ "Matcher"? Класс Java Matcher (java.util.regex.Matcher) создан для поиска Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ мноТСства Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ рСгулярного выраТСния Π² ΠΎΠ΄Π½ΠΎΠΌ тСкстС ΠΈ поиска ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… тСкстах. Класс Java Matcher ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². НапримСр: β€’ boolean matches(): Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true ΠΏΡ€ΠΈ совпадСнии строки с шаблоном. β€’ boolean find(): Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ подстроки, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΉ с шаблоном, ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ Π½Π΅ΠΉ. β€’ int start(): Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса соотвСтствия. β€’ int end(): Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ соотвСтствия. β€’ String replaceAll(String str): Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ строки подстрокой str. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Matcher ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. РассмотритС простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Pattern ΠΈ Matcher. @java_geek

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Java Как ΠΈ C++, Java автоматичСски создаСт конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ссли Π½Π΅Ρ‚ конструктора ΠΏΠΎ ΡƒΠΌΠΎΠ»
ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Java Как ΠΈ C++, Java автоматичСски создаСт конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ссли Π½Π΅Ρ‚ конструктора ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ конструктора, написанного программистом. А Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² C++ конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ автоматичСски Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Но, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ C++, конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Java ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‡Π»Π΅Π½Ρ‹ класса значСниями ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (числовыС значСния ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ 0, логичСскиС значСния ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ false, Π° ссылки ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ null). @java_geek