uz
Feedback
Java Geek

Java Geek

Kanalga Telegram’da oβ€˜tish

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

Ko'proq ko'rsatish
2 379
Obunachilar
Ma'lumot yo'q24 soatlar
-97 kunlar
-3530 kunlar
Postlar arxiv
Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π»ΠΈ ситуации, ΠΊΠΎΠ³Π΄Π° Π±Π»ΠΎΠΊ finally Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½? ΠžΡ‚Π²Π΅Ρ‚: НапримСр, ΠΊΠΎΠ³Π΄Π° JVM Β«ΡƒΠΌΠΈΡ€Π°Π΅Ρ‚Β» - Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации finally
Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π»ΠΈ ситуации, ΠΊΠΎΠ³Π΄Π° Π±Π»ΠΎΠΊ finally Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½? ΠžΡ‚Π²Π΅Ρ‚: НапримСр, ΠΊΠΎΠ³Π΄Π° JVM Β«ΡƒΠΌΠΈΡ€Π°Π΅Ρ‚Β» - Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации finally нСдостиТим ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ происходит ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ систСмный Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. @java_geek

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² основном с числами, поэтому Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Ρ‹ нСсколько ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚
ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² основном с числами, поэтому Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Ρ‹ нСсколько ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Ρ€Π°Π·Π²ΠΈΠ²Π°Π»ΠΈΡΡŒ постСпСнно, Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… этапах своСй ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Π²Ρ‹ΡˆΠ΅ разряда процСссора, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ появилась такая битовая Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… чисСл. @java_geek

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚? ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ прСимущСства ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ – это Π½Π°Π±ΠΎΡ€ связанных классов ΠΈ интСрфСйсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны вмСстС. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ классами ΠΈ использован ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ. НСсколько Π΅Π³ΠΎ прСимущСств: β€’ ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Π½Π° Java ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½. β€’ Они ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа ΠΊ ΠΊΠΎΠ΄Ρƒ. β€’ ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ скрытыС классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²ΠΈΠ΄Π½Ρ‹ внСшним классам ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°.. β€’ Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру, которая ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ поиск связанных классов. @java_geek

МоТно Π»ΠΈ ΠΈΠ· конструктора Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅? Π‘ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ конструкторы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. И Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏ
МоТно Π»ΠΈ ΠΈΠ· конструктора Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅? Π‘ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ конструкторы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. И Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ ΠΏΡ€ΠΎΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, прописывая Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° throws <Π’ΠΈΠΏΠ˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ>, Ρ‚ΠΎ ΠΈ конструктор позволяСт Π½Π°ΠΌ это Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΈ наслСдовании ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ конструктора наслСдника ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. НапримСр, IOException -> Exception (Π½ΠΎ Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚). Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° для пробрасывания конструктором ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ возьмСм класс Cat. Допустим, ΠΏΡ€ΠΈ Π΅Π³ΠΎ создании ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ имя ΠΈ возраст с консоли(см ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ). Π’Π°ΠΊ ΠΊΠ°ΠΊ reader.readLine() бросаСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ IOException, Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΌΡ‹ Π΅Π³ΠΎ прописываСм ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ выбрасываСмоС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. @java_geek

Guava Guava β€” это сборник мноТСства Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΎΡ‚ Google. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя: β˜•οΈ нСсколько Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, нСизмСняСмыС
Guava Guava β€” это сборник мноТСства Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΎΡ‚ Google. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя: β˜•οΈ нСсколько Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, нСизмСняСмыС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ; β˜•οΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π³Ρ€Π°Ρ„Π°ΠΌΠΈ; β˜•οΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π²Π²ΠΎΠ΄ΠΎΠΌ\Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ, Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, строками ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. НапримСр, часто Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π±Π»ΠΎΠΊΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ строк (см. ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°). Π‘ΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ, ΠΊΠΎΠ΄ с Guava выглядит Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Π΅Π΅, понятнСС, Π° Π³Π»Π°Π²Π½ΠΎΠ΅, выполняСт эту ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ самым ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. На эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° спСцами ΠΈΠ· Google. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, эти ΠΆΠ΅ спСцы ΠΈΠ· Google сами Π΅Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ инструкциСй ΠΊ установкС Ρ‚ΡƒΡ‚. @java_geek

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнноС (Β«ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅Β») ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅? НСобходимо ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡
Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнноС (Β«ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅Β») ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅? НСобходимо ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ Exception ΠΈΠ»ΠΈ RuntimeException). @java_geek

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹? Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ β€” это явно Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ значСния Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, константы ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π²
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹? Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ β€” это явно Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ значСния Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, константы ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² ΠΊΠΎΠ΄Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ запуска. Π’ классС Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ β€œHello world!” β€” Π»ΠΈΡ‚Π΅Ρ€Π°Π», пСрСмСнная a β€” Ρ‚ΠΎΠΆΠ΅. Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ способом написания. @java_geek

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

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнноС (Β«ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅Β») ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅? НСобходимо ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡
Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнноС (Β«ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅Β») ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅? НСобходимо ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ Exception ΠΈΠ»ΠΈ RuntimeException). @java_geek

Как происходит ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов ΠΈΠ· ArrayList? Как мСняСтся Π² этом случаС Ρ€Π°Π·ΠΌΠ΅Ρ€ ArrayList? ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта ΠΈΠ· списка, всС элСмСнты, находящиСся Β«ΠΏΡ€Π°Π²Π΅Π΅Β» ΡΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄Π½Ρƒ ячСйку Π²Π»Π΅Π²ΠΎ ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива (Π΅Π³ΠΎ Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ, capacity) Π½Π΅ измСняСтся Π½ΠΈΠΊΠ°ΠΊ. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ автоматичСского Β«Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΒ» массива сущСствуСт, Π° Π²ΠΎΡ‚ автоматичСского «сТатия» Π½Π΅Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ явно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ «сТатиС» ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ trimToSize(). @java_geek

JIT-оптимизация Java-ΠΊΠΎΠ΄ обрабатываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JIT-компиляции: сначала транслируСтся Π² платформонСзависимый Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, Π° ΡƒΠΆ
JIT-оптимизация Java-ΠΊΠΎΠ΄ обрабатываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JIT-компиляции: сначала транслируСтся Π² платформонСзависимый Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, Π° ΡƒΠΆΠ΅ послС этого Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠŸΡ€ΠΈ этом оптимизируСтся всС, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ компилятору ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ максимально ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° взглянСм Π½Π° Π΄Π²Π΅ простыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: // 1 n += 2 * i * i; // 2 n += 2 * (i * i); Π˜Π·ΠΌΠ΅Ρ€ΠΈΠΌ врСмя выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ…. Запустив ΠΊΠΎΠ΄ с ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ нСсколько Ρ€Π°Π·, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ врСмя выполнСния: 2 * (i * i) | 2 * i * i 0.5183738 | 0.6246434 0.5298337 | 0.6049722 0.5308647 | 0.6603363 0.5133458 | 0.6243328 0.5003011 | 0.6541802 Π—Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°: Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скобок ускоряСт Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΎ происходит ΠΈΠ·-Π·Π° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивного Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. @java_geek

Π—Π°Ρ‡Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ArrayList, Ссли ΡƒΠΆΠ΅ Π±Ρ‹Π» Vector? β€’ ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Vector синхронизированы, Π° ArrayList - Π½Π΅Ρ‚; β€’ По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Vector ΡƒΠ΄Π²Π°ΠΈΠ²Π°Π΅Ρ‚ свой Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° заканчиваСтся выдСлСнная ΠΏΠΎΠ΄ элСмСнты ΠΏΠ°ΠΌΡΡ‚ΡŒ. ArrayList ΠΆΠ΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ свой Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ. Vector это ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ класс ΠΈ Π΅Π³ΠΎ использованиС Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ. @java_geek

new vs valueOf Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ valueOf вмСсто конструктора Π² стандартных классах-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚
new vs valueOf Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ valueOf вмСсто конструктора Π² стандартных классах-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ… случаСв, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. БСйчас объясню, ΠΏΠΎΡ‡Π΅ΠΌΡƒ. ВсС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, ΠΎΡ‚ Byte Π΄ΠΎ Long, ΠΈΠΌΠ΅ΡŽΡ‚ кэш. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ этот кэш содСрТит значСния ΠΎΡ‚ -128 Π΄ΠΎ 127. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли вашС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² этот Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ вСрнСтся ΠΈΠ· кэша. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· кэша достаСтся Π² 3.5 Ρ€Π°Π·Π° быстрСС, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ использовании конструктора, плюс ΠΈΠ΄Ρ‘Ρ‚ экономия памяти. Помимо этого, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ значСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ компилятором ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной. @java_geek

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈ язык Java мноТСствСнноС наслСдованиС? Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΈΡ‚Ρ€Ρ‹ΠΉ вопрос. Π˜Π½Ρ‚Π΅Ρ€Π²ΡŒΡŽΠ΅Ρ€Ρ‹ часто говорят: Ссли язык C++ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ нСпосрСдствСнноС мноТСствСнноС наслСдованиС, Ρ‚ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Java Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚? ΠžΡ‚Π²Π΅Ρ‚ нСсколько Π±ΠΎΠ»Π΅Π΅ слоТСн, Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Java ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСствСнноС наслСдованиС Ρ‚ΠΈΠΏΠΎΠ², вСдь интСрфСйс Π² Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ интСрфСйсы. Но мноТСствСнноС наслСдованиС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ язык Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚. @java_geek

Класс FileWriter НаслСдуСтся ΠΎΡ‚ класса OutputStreamWriter, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для записи ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² символов. Код Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ создаСт
Класс FileWriter НаслСдуСтся ΠΎΡ‚ класса OutputStreamWriter, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для записи ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² символов. Код Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ создаСт Ρ„Π°ΠΉΠ» с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ .txt ΠΈ записываСт Π² Π½Π΅Π³ΠΎ тСкст, Π° послС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ FileReader Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. Класс ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько конструкторов, Π° Ρ‚Π°ΠΊΠΆΠ΅ список Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для управлСния Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. @java_geek

Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ поля слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ подсчСтС hashCode()? ΠžΠ±Ρ‰ΠΈΠΉ совСт: Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ поля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ с большой долью вСроятности Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅, Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ поля, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ id, uuid. ΠŸΡ€ΠΈ этом Π½ΡƒΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ, Ссли поля задСйствованы ΠΏΡ€ΠΈ вычислСнии hashCode(), Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ задСйствованы ΠΈ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ equals(). @java_geek

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 1 Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ опрСдСлСния Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ числа? НадСюс
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 1 Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ опрСдСлСния Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ числа? НадСюсь, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Ρ…ΠΈΡ‚Ρ€ΠΎΡΡ‚ΡŒ. Если ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠΌ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, -5), остаток ΠΎΡ‚ дСлСния Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅, поэтому Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 2). Он Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл, Π½ΠΎ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Π΅ΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄. АрифмСтичСскиС ΠΈ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, Ρ‡Π΅ΠΌ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅. @java_geek

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

ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° какая-Π»ΠΈΠ±ΠΎ коллСкция выбрасываСт UnsupportedOperationException. ΠžΡ‚Π²Π΅Ρ‚: Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка, ΠΏΠΎ
ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° какая-Π»ΠΈΠ±ΠΎ коллСкция выбрасываСт UnsupportedOperationException. ΠžΡ‚Π²Π΅Ρ‚: Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Collections.emptyList() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ пустой список Π±Π΅Π· возмоТности добавлСния элСмСнтов. @java_geek

ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ β€’ ~ : ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ NOT; β€’ & : ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ AND; β€’ &= : ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ AND с присваиваниСм; β€’ | : ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ OR; β€’ |= : ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ OR с присваиваниСм; β€’ ^ : ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ XOR; β€’ ^= : ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ XOR с присваиваниСм; β€’ >> : Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ (Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 2 Π² стСпСни сдвига); β€’ >>= : Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ с присваиваниСм; β€’ >>> : Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° Π·Π½Π°ΠΊΠ°; β€’ >>>= : Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° Π·Π½Π°ΠΊΠ° с присваиваниСм; β€’ << : Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ (ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 2 Π² стСпСни сдвига); β€’ <<= : Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ с присваиваниСм. @java_geek