Java Guru πŸ€“
13.4K subscribers
931 photos
15 videos
785 links
Канал с вопросами ΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ с собСсСдований!

По сотрудничСству ΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ΅: @NadikaKir

Канал Π² ΠΏΠ΅Ρ€Π΅Ρ‡Π½Π΅ РКН: https://vk.cc/cJrSQZ

ΠœΡ‹ Π½Π° Π±ΠΈΡ€ΠΆΠ΅: telega.in/channels/javatasks/card?r=lcDuijdm

#ZOWBB
Download Telegram
Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ArrayStoreException?

Π­Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»Π°ΡΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Вакая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° становится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·-Π·Π° ковариантности массивов.

ΠšΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с массивом ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ массива Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ. НапримСр, Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ Object[] ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² любой массив:

 Object x[] = new String[3];
x[0] = new Integer(0);


ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π±Π΅Ρ€Π΅Ρ‚Π΅ элСмСнт ΠΈΠ· массива, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ прСдставитСлСм Ρ‚ΠΈΠΏΠ° элСмСнтов самого этого массива. НС Π²Π°ΠΆΠ½ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° пСрСмСнная Π΅Π³ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚. ИмСнно для обСспСчСния этой Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, которая ΠΈ выбрасываСт ArrayStoreException.

Битуация ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ heap pollution Π² случаС Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ². Волько для этого случая такая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ€Π΅ΠΆΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° этапа компиляции:

// Ошибка компиляции – Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹!
List<Object> x = new ArrayList<String>();
πŸ‘11πŸ”₯2❀1
ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ бСсплатному курсу ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ Π² ΠΌΠΈΡ€ Java!

Π˜Π·ΡƒΡ‡Π°ΠΉΡ‚Π΅ основы, создавайтС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ΡΡŒ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ошибки Π² ΠΊΠΎΠ΄Π΅. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, упраТнСния ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½Ρ‹Π΅ тСсты ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ программирования.

πŸŽ“ Π§Π΅ΠΌΡƒ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ:
β€” Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с использованиСм основных конструкций языка.
 β€” Π Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования.
 β€” ΠΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ошибки Π² ΠΊΠΎΠ΄Π΅ с использованиСм ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ.

πŸ’Ό Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² курс:
29 ΡƒΡ€ΠΎΠΊΠΎΠ² (Π²ΠΈΠ΄Π΅ΠΎ ΠΈ/ΠΈΠ»ΠΈ тСкст), 35 ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ Π² Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€Π΅, 95 ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½Ρ‹Ρ… тСстов + Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹.

Π’Ρ‹ с Π½Π°ΠΌΠΈ?πŸ˜‰
πŸ”₯5πŸ‘2
Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив?

Object.clone()
ΠΈ System.arraycopy(). НативныС способы копирования, самыС быстрыС ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ…. УнаслСдованный ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса clone() ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ вСсь массив Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². arraycopy(), Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, максимально Π³ΠΈΠ±ΠΊΠΈΠΉ – позволяСт ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ массива ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ массив, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Arrays.copyOf(), Arrays.copyOfRange() ΠΈ всС ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π°Ρ€Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ спСциализированныС способы копирования. Π’Π½ΡƒΡ‚Ρ€ΠΈ всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ System.arraycopy().

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· стрим.
Arrays.stream(sourceArray).toArray(). Π£Π΄ΠΎΠ±Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ удобства, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², привСдСния Ρ‚ΠΈΠΏΠΎΠ², ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – класс SerializationUtils ΠΈΠ· Apache Commons.

ВсС пСрСчислСнныС способы ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚Π½ΡƒΡŽ копию – ΠΎΠ±Π° массива Π² ΠΈΡ‚ΠΎΠ³Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π›ΡƒΡ‡ΡˆΠΈΠΉ способ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΡƒΡŽ копию – Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ new создаСтся пустой массив Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π·Π°Ρ‚Π΅ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ заполняСтся копиями элСмСнтов. Stream API здСсь ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ многопоточности.

Π‘Π°ΠΌΡ‹ΠΉ быстрый, Π½ΠΎ уТасный ΠΏΠΎ эффСктивности способ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ копирования массива Π±Π΅Π· Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ копирования ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов – сСриализация+дСсСриализация. Π‘Π»ΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΏΠ»ΠΎΡ…ΠΎΠΌΡƒ способу для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½Π°, Π½ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ быстрого ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ°, ΠΈΠ»ΠΈ для тСстового ΠΊΠΎΠ΄Π°.
πŸ‘17πŸ”₯2
Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ быстрого освоСния ChatGPT.

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти ΠΈ созданиС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠΌΠΏΡ‚ΠΎΠ² – это Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π—Π΄Π΅ΡΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ курс ΠΈΠ· 5 ΡƒΡ€ΠΎΠΊΠΎΠ² ΠΏΠΎ ChatGPT. ПослС Π΅Π³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π²Ρ‹ смоТСтС ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ 9 Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ:

- Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ошибки ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄
- Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ посты Π² Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌΠ΅
- ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ для Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹
- Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½ΠΊΠ΅

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ смоТСтС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ своих собствСнных Π½Π΅ΠΉΡ€ΠΎ-ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ² для ΠΏΡ€ΠΎΠ΄Π°ΠΆ, ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³Π° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ.

БСсплатный доступ прСдоставляСтся сразу послС рСгистрации.

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО "ВЕРРА ЭЙАЙ". ИНН 9728019395. erid: LjN8Jthv2
πŸ‘5
МоТно Π»ΠΈ ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ Error?

ВСхничСски, Error ΠΊΠ°ΠΊ ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ Throwable ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ Π² Π±Π»ΠΎΠΊ catch. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ ΠΈ скомпилируСтся Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, согласно спСцификации, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠ° Error – нСобрабатываСмая ошибка, Π»ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅Ρ‚ смысла.

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, выброс ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠ° VirtualMachineError ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ JVM находится Π² сломанном состоянии. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π° нСпрСдсказуСма: OutOfMemoryError ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ нСвозмоТности создания Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², StackOverflowError тСряСт Ρ„Ρ€Π΅ΠΉΠΌΡ‹ стСка Π²Ρ‹Π·ΠΎΠ²Π°, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π»ΠΎΠ²ΠΈΡ‚ΡŒ Error Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, объявлСниС Π΅Ρ‘ Π² сСкции throws сигнатуры ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Как ΠΈ RuntimeException, Error – Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ unchecked exception.
πŸ‘15πŸ”₯3
This media is not supported in your browser
VIEW IN TELEGRAM
Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ логистичСская ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π² ЯндСкс ΠœΠ°Ρ€ΠΊΠ΅Ρ‚Π΅? πŸ”₯

Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС подкаста I like techno ΠΎΡ‚ ЯндСкса Π³Π΅Ρ€ΠΎΠΈ обсудили, ΠΊΠ°ΠΊ устроСна ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° сСйчас ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½Π° мСнялась Π·Π° послСдниС 10 Π»Π΅Ρ‚.

Команда логистики Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всё для собствСнной доставки ΠœΠ°Ρ€ΠΊΠ΅Ρ‚Π°: ΠΎΡ‚ создания Π·Π°ΠΊΠ°Π·Π° Π΄ΠΎ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ сортировочными Ρ†Π΅Π½Ρ‚Ρ€Π°ΠΌΠΈ ΠΈ доставки ΠΊΡƒΡ€ΡŒΠ΅Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ Π² ΠΏΡƒΠ½ΠΊΡ‚ Π²Ρ‹Π΄Π°Ρ‡ΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ². РСбята Π΄Π΅Π»Π°ΡŽΡ‚ ΠΊΠΎΠ΄ осязаСмым, Π° ΠΎΡ„Π»Π°ΠΉΠ½ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ матСматичСскиС структуры, ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½Ρ‹Π΅ систСмы, собствСнных Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΠ² ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π³ΠΈΠΈ.

Π‘ΠΏΠΈΠΊΠ΅Ρ€Ρ‹ β€” спСцы, ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π΅ΠΌΡƒ:
πŸ‘‰ Π‘Π»Π°Π²Π° Π¦Ρ‹ΠΊΠΈΠ½, БВО логистичСской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹
πŸ‘‰ Π ΠΎΠΌΠ° ΠšΡƒΠ»ΡŒΡ‡ΠΈΡ†ΠΊΠΈΠΉ, Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ слуТбы ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ инфраструктуры
πŸ‘‰ АндрСй Захрямин, Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ инфраструктуры Логистики
πŸ‘‰ ΠšΠΈΡ€ΠΈΠ»Π» Π”ΠΌΠΈΡ‚Ρ€ΠΈΠ΅Π², Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ слуТбы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ складских систСм ΠΈ систСм ΡƒΡ‡Ρ‘Ρ‚Π°

Π‘Π»ΡƒΡˆΠ°Ρ‚ΡŒ Π½Π° ЯндСкс ΠœΡƒΠ·Ρ‹ΠΊΠ΅
Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Youtube
πŸ‘5❀2πŸ”₯2πŸ₯΄1🍌1
Π§Π΅ΠΌ отличаСтся Closeable ΠΎΡ‚ AutoCloseable?

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ AutoCloseable прСдставляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ рСсурса, ΠΏΠΎΠΊΠ° Ρ‚ΠΎΡ‚ Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚. Π’ СдинствСнном Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ close() ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π»ΠΎΠ³ΠΈΠΊΠ° закрытия этого рСсурса. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – дСскриптор ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (ObjectOutputStream).

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ этого интСрфСйса Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² языковой конструкции try-with-resource. Всё это появилось Π² Java вСрсии 7.

Π”ΠΎ Java 7 ΡƒΠΆΠ΅ сущСствовал ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ интСрфСйс – Closeable. Бмысл Π΅Π³ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅. Он всё Π΅Ρ‰Π΅ доступСн Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости, Π½ΠΎ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ AutoCloseable. Π§Ρ‚ΠΎΠ±Ρ‹ экзСмпляры старого Closeable Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² try-with-resource, Π½ΠΎΠ²Ρ‹ΠΉ интСрфСйс Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° старого интСрфСйса Closeable Π±Ρ‹Π»Π° Π² узости Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ close(). ΠšΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ интСрфСйсС AutoCloseable с IOException Π΄ΠΎ Exception.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ – ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° close(). Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ Closeable Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ идСмпотСнтности, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ AutoCloseable Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты.
πŸ‘13πŸ€”1
⌨️ Волько Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ свой ΠΏΡƒΡ‚ΡŒ Π² Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅?

Π–Π΄Ρ‘ΠΌ вас Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ практичСском ΡƒΡ€ΠΎΠΊΠ΅ Β«Π‘Π±ΠΎΡ€ΠΊΠ° прилоТСния Π½Π° JavaΒ» ΠΎΡ‚ OTUS, Π³Π΄Π΅ ΠΌΡ‹:

- рассмотрим, ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ исполняСмый jar-Ρ„Π°ΠΉΠ»;
- Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ рСсурсы;
- запустим Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅;
- научимся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ javac ΠΈ java, jvm, jre, jdk ΠΈ classpath.

Π‘ΠΏΠΈΠΊΠ΅Ρ€ АндрСй Поляков β€” ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΠΈΠ½Ρ‚Π΅Ρ…-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

ВстрСчаСмся 18 июня Π² 20:00 мск Π² Ρ€Π°ΠΌΠΊΠ°Ρ… курса «БпСциализация Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ».
ВсС участники Π²Π΅Π±ΠΈΠ½Π°Ρ€Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Ρƒ Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅!

➑️ Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ прямо сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ бСсплатный ΡƒΡ€ΠΎΠΊ: https://vk.cc/cxCHti

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘5πŸ”₯1
Как Java Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄?

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ – Π² классС ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ. ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° происходит Π½Π° этапС компиляции (Ρ€Π°Π½Π½Π΅Π΅ связываниС). Π’ дСталях Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° описан Π² спСцификации.

Π’Ρ‹Π±ΠΎΡ€ происходит Π² Π΄Π²Π° шага. На ΠΏΠ΅Ρ€Π²ΠΎΠΌ выбираСтся ΠΎΠ΄Π½Π° ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ„Π°Π· – мноТСство подходящих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

1. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ подходят ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, Π»ΠΈΠ±ΠΎ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ (upcasting) ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² ΠΈΠ»ΠΈ ссылочных Ρ‚ΠΈΠΏΠΎΠ², ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ vararg-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

2. Если Π² Ρ„Π°Π·Π΅ 1 подходящих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½Π΅ нашлось, ΠΊ Π΅Π΅ условиям Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ боксинга/анбоксинга ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ боксинг+Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

3. Если ΠΈ для Ρ„Π°Π·Ρ‹ 2 Π½Π΅Ρ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сигнатур, ΠΊ условиям поиска ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ vararg-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

Π’ случаС, ΠΊΠΎΠ³Π΄Π° Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ нашСлся Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°Π·Π΅, компиляция Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ошибкой.

Когда Π² Ρ„Π°Π·Π΅ имССтся нСсколько подходящих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ спСцифичный срСди Π½ΠΈΡ… (Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠΉ Ρ„Π°Π·Ρ‹!).

ΠœΠ΅Ρ‚ΠΎΠ΄ A считаСтся Π±ΠΎΠ»Π΅Π΅ спСцифичным Ρ‡Π΅ΠΌ B, ΠΊΠΎΠ³Π΄Π° Ρ‚ΠΈΠΏΡ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° – ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΡ‹ Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² A подошли Π±Ρ‹ ΠΈ для B, Π½ΠΎ Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Π’ условии спСцифичности говорится ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π° Π½Π΅ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ боксинг/анбоксинг Π½Π΅ учитываСтся, ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ int Π½Π΅ считаСтся Π±ΠΎΠ»Π΅Π΅ спСцифичным, Ρ‡Π΅ΠΌ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Object (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Integer). Π₯отя, Ρ†Π΅Π»ΠΎΠ΅ число ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ Object, ΠΈ ΠΊΠ°ΠΊ Integer.
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ объяснСниС.

Когда срСди ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ спСцифичный, происходит ошибка компиляции.
πŸ‘14πŸ”₯3
ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° наш Π―.Π‘ΡƒΠ±Π±ΠΎΡ‚Π½ΠΈΠΊ ΠΏΠΎ JVM β€” 29 июня Π² НовосибирскС!

Вас ΠΆΠ΄Ρ‘Ρ‚ ΠΌΠΈΡ‚Π°ΠΏ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ пишСм ΠΊΠΎΠ΄ Π½Π° Java, Scala ΠΈ Kotlin.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ β€” Π΄ΠΎΠΊΠ»Π°Π΄Ρ‹ ΠΊΡ€ΡƒΡ‚Ρ‹Ρ… спикСров, Π½Π΅Ρ‚Π²ΠΎΡ€ΠΊΠΈΠ½Π³ ΠΈ Π°Ρ„Ρ‚Π΅Ρ€ΠΏΠ°Ρ‚ΠΈ. РасскаТСм ΠΏΡ€ΠΎ pattern matching, процСссы ΠΈ Ρ„Π°ΠΊΠ°ΠΏΡ‹ Π½Π° складах ΠœΠ°Ρ€ΠΊΠ΅Ρ‚Π°, Π° Π΅Ρ‰Π΅ ΠΏΡ€ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π½Π°ΡˆΠΈΡ… систСм.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ насыщСнной β€” Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ссылкС.

Π”ΠΎ встрСчи Π½Π° Π‘ΡƒΠ±Π±ΠΎΡ‚Π½ΠΈΠΊΠ΅! β˜€οΈ
πŸ‘4πŸ”₯3❀2πŸ‘1
Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ?

Π£Π΄ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ случаи примСнСния Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΡ… свойства RetentionPolicy:

SOURCE – аннотация присутствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² исходном ΠΊΠΎΠ΄Π΅, Π½ΠΎ Π½Π΅ Π²ΠΎΠ²Π»Π΅Ρ‡Π΅Π½Π° Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ. МоТно Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° Π΄Π²Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ:

ΠŸΠ΅Ρ€Π²Π°Ρ – Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ для программиста, Π° Π½Π΅ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΎ всСвозмоТныС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹. Они Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ элСмСнтам Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ сСмантику. Π‘ΠΎΠ»Π΅Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ –
@Immutable ΠΈ @ThreadSafe ΠΈΠ· Hibernate.

Вторая катСгория – инструкции для инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ этой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ,
@SuppressWarnings ΠΈ @Override ΠΌΠΎΠ³ΡƒΡ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° прСдупрСТдСния ΠΈ ошибки компиляции. IntelliJ IDEA ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ @Nullable ΠΈ @NonNull ΠΈΠ· Spring Framework, ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Ρ‚ΡŒ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… NullPointerException.

CLASS – самоС экзотичСскоС, Π½ΠΎ ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ стандартноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Аннотация ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ .class-Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ игнорируСтся Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠΌ классов. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ такая аннотация нСдоступна для Ρ€Π΅Ρ„Π»Π΅ΠΊΡˆΠ½Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сторонних инструмСнтов, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для обфускаторов.

RUNTIME – самоС Ρ…ΠΎΠ΄ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ЦСль снабТаСтся ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, доступной Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘Π°ΠΌΠ° ΠΏΠΎ сСбС аннотация всё Ρ‚Π°ΠΊ ΠΆΠ΅ Π½Π΅ добавляСт Π½ΠΎΠ²ΠΎΠ³ΠΎ повСдСния. Для практичСской ΠΏΠΎΠ»ΡŒΠ·Ρ‹ runtime-Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ исполнСн Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ΄ процСссинга, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ инструмСнтами Reflection API. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ мноТСствС популярных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²: Spring, Hibernate, Jackson.
πŸ‘13πŸ”₯2
❓ДумаСтС, Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ всС ΠΏΡ€ΠΎ ООП?

βš‘οΈΠ–Π΄Π΅ΠΌ вас Π½Π° практичСском ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ Β«Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ объяснСниС ΠΏΡ€ΠΎ ООП» ΠΎΡ‚ OTUS, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ вашС прСдставлСниС ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… сильно помСняСтся.

ЗанятиС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π° любом языкС.

πŸ˜ŽΠ‘ΠΏΠΈΠΊΠ΅Ρ€ Π•Π²Π³Π΅Π½ΠΈΠΉ Π’ΡŽΠΌΠ΅Π½Ρ†Π΅Π² β€” Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ с ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ практичСским ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ.

πŸ–₯ВстрСчаСмся 19 июня Π² 20:00 мск Π² Ρ€Π°ΠΌΠΊΠ°Ρ… курса «АрхитСктура ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования». ВсС участники Π²Π΅Π±ΠΈΠ½Π°Ρ€Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Ρƒ Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅!

πŸ”—ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ тСст прямо сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ бСсплатный ΡƒΡ€ΠΎΠΊ: https://vk.cc/cxG2et
πŸ‘2❀1πŸ”₯1
Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово assert?

assert – Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ assertTrue() ΠΈΠ· тСстовых Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π­Ρ‚ΠΎ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.

Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚, Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ провСряСмоС ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° boolean. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ оказываСтся false, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° утвСрТдСния считаСтся ΠΏΡ€ΠΎΠ²Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΈ выбрасываСтся AssertionError. Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½ΡƒΡŽ запись ΠΏΠ°Ρ€Ρ‹ if ΠΈ throw, с фиксированным Ρ‚ΠΈΠΏΠΎΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Π’ Java Π΄ΠΎ вСрсии 4 слово assert Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ – Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° assert!

Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ„Π»Π°Π³ΠΎΠΌ -ea ΠΈΠ»ΠΈ -enableassertions ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ java. МоТно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ классы ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³ -da (-disableassertions), эти Ρ„Π»Π°Π³ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ.

Assertion-Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² основном для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ для подстраховки Π² ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ. Π’Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΉ AssertionError ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ программиста.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° assert Π΅ΡΡ‚ΡŒ синтаксис ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° detailMessage Π² конструктор AssertionError:
assert 2*2==5 : "two times two is not five!";
πŸ‘13❀6
πŸ‘©β€πŸ’» Π—Π°Ρ‡Π΅ΠΌ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Redis?

Π£Π·Π½Π°ΠΉΡ‚Π΅ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ практичСском ΡƒΡ€ΠΎΠΊΠ΅ ΠΎΡ‚ OTUS, Π³Π΄Π΅ ΠΌΡ‹:

- посмотрим, ΠΊΠ°ΠΊ Π² Java-прилоТСниях ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Redis Π² качСствС in-memory кСша;
- ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, для Ρ‡Π΅Π³ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ;
- ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠΌ Π½Π° всС Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ вопросы.

Π‘ΠΏΠΈΠΊΠ΅Ρ€ Π‘Π΅Ρ€Π³Π΅ΠΉ ΠŸΠ΅Ρ‚Ρ€Π΅Π»Π΅Π²ΠΈΡ‡ β€” ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Java/Kotlin-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Oracle Certified Professional, Java SE 8 Programmer.

ВстрСчаСмся 25 июня Π² 20:00 мск Π² Ρ€Π°ΠΌΠΊΠ°Ρ… курса Β«Java Developer. ProfessionalΒ».
ВсС участники Π²Π΅Π±ΠΈΠ½Π°Ρ€Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Ρƒ Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅!

➑️ Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ прямо сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ бСсплатный ΡƒΡ€ΠΎΠΊ: https://vk.cc/cxJfTV

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
❀2πŸ‘1πŸ”₯1
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

НавСрняка Π²Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ΡƒΠΊΠ»ΡŽΠΆΠΈΠΉ ΠΊΠΎΠ΄ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»ΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ влоТСнности:

boolean flag = false;
for (...) {
for (...) {
if (...) { x = true; break; }
}
if (flag == true) break;
}


Π’ Java сущСствуСт ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ синтаксис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π² Ρ‚Π°ΠΊΠΈΡ… ситуациях – ΠΌΠ΅Ρ‚ΠΊΠΈ (label).

ΠœΠ΅Ρ‚ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΡƒΠ½ΠΊΡ‚ назначСния для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² break ΠΈ continue. ΠŸΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ любой Π±Π»ΠΎΠΊ – Ρ†ΠΈΠΊΠ» for, while, Π΄Π°ΠΆΠ΅ простой Π±Π»ΠΎΠΊ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ switch ΠΈ if. ΠœΠ΅Ρ‚ΠΊΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° break Π²Π½Π΅ Ρ†ΠΈΠΊΠ»Π°, хотя ΠΏΠΎΠ»ΡŒΠ·Ρ‹ Π² этом ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ условиС компилятора – ΠΌΠ΅Ρ‚ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² сосСдний Ρ†ΠΈΠΊΠ» Π½Π΅ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚.
πŸ‘9🀨7😐3πŸ”₯1😁1
πŸš€ ΠžΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π΄ΠΎ Middle+ Π² Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ΄ руководством Π»ΡƒΡ‡ΡˆΠΈΡ… экспСртов ниши!

ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ для всСх, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ с нуля ΠΈ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π΅Ρ‰Π΅ Π½Π΅ опрСдСлился с языком программирования.

πŸ“ŒΠŸΠΎΡΠ»Π΅ ΠΎΠ½Π»Π°ΠΉΠ½-курса «БпСциализация Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ» ΠΎΡ‚ OTUS Π²Ρ‹ смоТСтС:

- ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ соврСмСнныС прилоТСния Π½Π° Java;
- Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с рСляционными Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…;
- Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ сСрвСрныС Π²Π΅Π±-прилоТСния;
- ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Middle Java Developer.

Π’Ρ‹ освоитС самыС вострСбованныС инструмСнты ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ.

Π—Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΎ скучном ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ β€” здСсь вас ΠΆΠ΄ΡƒΡ‚ настоящиС Ρ‡Π΅Π»Π»Π΅Π½Π΄ΠΆΠΈ ΠΈ нСстандартныС практичСскиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. А Π΅Ρ‰Π΅ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ для ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ ΠΈ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½Ρ‹ΠΉ сапорт!

🎁 УспСй Π½Π° курс! Волько Π΄ΠΎ 23 июня скидка 10%, подробности Ρƒ Π½Π°ΡˆΠΈΡ… ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² - просто ΠΎΡΡ‚Π°Π²ΡŒ заявку.

Π‘Ρ‚Π°Ρ€Ρ‚ ΡƒΠΆΠ΅ 28 июня.

πŸ‘‰ Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ подробности ΠΈ ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ заявку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Ρƒ Π½Π° курс: https://vk.cc/cxMTwK

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘2πŸ”₯2
Как нСльзя Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅?

Π­Ρ‚ΠΎΡ‚ вопрос ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ ΠΈΠ· Π΄Π²ΡƒΡ… частСй. НуТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡ‚ΡŒ тСхничСскиС ограничСния, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ стилистичСскиС. Π‘Ρ‚ΠΈΠ»ΡŒ – слишком большая Ρ‚Π΅ΠΌΠ°, Π½Π΅ спСцифичная Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Java, Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π½Π° Π½Π΅ΠΉ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ.

ВСхничСски компилятор Π½Π°Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ограничСния Π½Π° ΠΈΠΌΠ΅Π½Π° ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ классов, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈ всСго ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ. Π­Ρ‚ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ всСго Ρ‚Ρ€ΠΈ:
1. Имя Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ словом;
2. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ символ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Character.isJavaIdentifierStart();
3. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ символы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Character.isJavaIdentifierPart().

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ имя Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… символов Unicode, ΠΊΠ°ΠΊ:
β€’ Π‘ΡƒΠΊΠ²Ρ‹ (Ρ€Π°Π·Π½Ρ‹Ρ… языков)
β€’ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Π²Π°Π»ΡŽΡ‚ (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ $)
β€’ Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ символы (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ _)
β€’ Π”ΠΈΠ°ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠ° (combining mark, non-spacing mark)
β€’ ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, проходящиС Character.isIdentifierIgnorable() (Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Π΅ символы, Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ компилятором)
β€’ Π¦ΠΈΡ„Ρ€Ρ‹, числовыС символы (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ римскиС числа)

ПослСдний ΠΏΡƒΠ½ΠΊΡ‚ нСдопустим для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа ΠΈΠΌΠ΅Π½ΠΈ. Π’ΠΈΠΏ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ символа ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Character.getType().

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ слово var. Оно стоит особняком ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ являСтся Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² контСкстС Ρ‚ΠΈΠΏΠ°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ var Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ.
πŸ‘12
πŸ§‘β€πŸ’» Π’ΠΈΠ΄Ρ‹ тСстов. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ инструмСнты ΠΈ ΠΈΡ… использованиС

Π–Π΄Ρ‘ΠΌ вас Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ занятии сСрии ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… практичСских ΡƒΡ€ΠΎΠΊΠΎΠ² ΠΏΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Spring-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ‚ OTUS, Π³Π΄Π΅ ΠΌΡ‹:

- сдСлаСм фокус Π½Π° Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΈ основных инструмСнтах тСстирования Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ;
- обсудим, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ тСстируСмым, ΠΊΠ°ΠΊΠΈΠ΅ тСсты Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ ΠΊΠ°ΠΊ для ΠΈΡ… написания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ°ΠΊ JUnit5, Mockito, AssertJ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡ… особСнностСй ΠΈ возмоТностСй;
- ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠΌ Π½Π° всС Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ вопросы.

Π‘ΠΏΠΈΠΊΠ΅Ρ€ β€” Senior Software Engineer ΠΈ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ.

ВстрСчаСмся 24 июня Π² 20:00 мск Π² ΠΏΡ€Π΅Π΄Π΄Π²Π΅Ρ€ΠΈΠΈ старта курса Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° Spring FrameworkΒ».
ВсС участники Π²Π΅Π±ΠΈΠ½Π°Ρ€Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Ρƒ Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅!

8️⃣9οΈβƒ£πŸ”ŸΠ Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ прямо сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ бСсплатный ΡƒΡ€ΠΎΠΊ: https://vk.cc/cxOjhF

🎁 Волько Π΄ΠΎ 23 июня скидка Π½Π° курс 10%, подробности Ρƒ Π½Π°ΡˆΠΈΡ… ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² - просто ΠΎΡΡ‚Π°Π²ΡŒ заявку.

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘2πŸ”₯2❀1
Π“Π΄Π΅ Ρƒ Java прилоТСния Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π°?

Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Java ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ всСгда Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ main class, содСрТащий ΠΌΠ΅Ρ‚ΠΎΠ΄ main. Π‘ Π½Π΅Π³ΠΎ начинаСтся исполнСниС всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Main class-ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ класс, Π½ΠΎ ΠΈ интСрфСйс ΠΈΠ»ΠΈ Π΅Π½Π°ΠΌ. Для JavaFX прилоТСния Π³Π»Π°Π²Π½Ρ‹ΠΉ класс Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ javafx.application.Application.

main ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ public static. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ strictfp. На Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΈ список ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π΅ накладываСтся.

Π’ Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ объявлСн СдинствСнный Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ – массив строк. ОбС конструкции String[] ΠΈ String... ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. НазваниС массива ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Когда ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся ΠΊΠ°ΠΊ classpath, Π³Π»Π°Π²Π½Ρ‹ΠΉ класс пСрСдаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Если выполняСтся СдинствСнный исходник, ΠΎΠ½ ΠΈ описываСт main class.

Для исполняСмого jar-Ρ„Π°ΠΉΠ»Π° (java -jar MyJar.jar), Π΅Π³ΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΉ класс Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ Π² манифСстС. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π°, Π² Ρ„Π°ΠΉΠ» META-INF/MANIFEST.MF добавляСтся строчка Π²ΠΈΠ΄Π° Main-Class: ru.itsobes.MyClass. Π˜Π½Π°Ρ‡Π΅ запуск Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ошибкой Β«no main manifest attributeΒ».

Π’ случаС, ΠΊΠΎΠ³Π΄Π° Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π³Π»Π°Π²Π½ΠΎΠΌ классС Π½Π΅ оказываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ удовлСтворял всСм критСриям Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ°Π΄Π°Π΅Ρ‚ с ошибкой Β«Main method not foundΒ».

Π’ Π°ΠΏΠΏΠ»Π΅Ρ‚Π°Ρ… вмСсто main Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ слуТат ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ init ΠΈ start. Начиная с вСрсии Java 9 тСхнология Π°ΠΏΠΏΠ»Π΅Ρ‚ΠΎΠ² объявлСна ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ, Π° с 11 – совсСм ΡƒΠ΄Π°Π»Π΅Π½Π°. НС Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΠΈΡ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.
πŸ‘8πŸ”₯2
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс?

Π’Π°ΠΊ называСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт Ρ‚ΠΈΠΏ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, коллбэк.

Π§Ρ‚ΠΎΠ±Ρ‹ компилятор считал интСрфСйс Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ, этот интСрфСйс Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ СдинствСнный абстрактный ΠΌΠ΅Ρ‚ΠΎΠ΄. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ любоС количСство Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с Ρ‚Π΅Π»ΠΎΠΌ. ΠŸΠ΅Ρ€Π΅ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса Object Ρ‚Π°ΠΊΠΆΠ΅ игнорируСтся.

Никаких Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ накладываСтся: ΠΎΠ½ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Π² Ρ‚ΠΈΠΏΠ°Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ любоС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ список выбрасываСмых ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (checked ΠΈ unchecked).

Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ всСх этих условий, Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ разновидности Ρ‚ΠΈΠΏΠΎΠ² ΠΊΡ€ΠΎΠΌΠ΅ interface Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ интСрфСйсами.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс принято ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ
@FunctionalInterface. НаличиС этой Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π½Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π½ΠΎ ΠΎΠ½ΠΎ Π΄Π°Ρ‘Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ: Π΅Ρ‘ присутствиС Π½Π° Π½Π΅Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ Ρ‚ΠΈΠΏΠ΅ спровоцируСт ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… интСрфСйсов: Callable, Supplier, Comparable.
πŸ‘16πŸ”₯2