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

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

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

ΠœΡ‹ Π½Π° Π±ΠΈΡ€ΠΆΠ΅: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java

KAMAJI β€” Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ сСрвис ЯндСкса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ систСмы OEBS ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ основныС Π΄Π°Π½Π½Ρ‹Π΅ Π² систСмС (поставщики, Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΈ, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ счСта ΠΈ ΠΏΡ€.). ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· UI. БистСма подсказываСт, провСряСт ΠΈ дозаполняСт запросы (Π² Ρ‚ΠΎΠΌ числС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°), ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· Π²ΠΎΡ€ΠΊΡ„Π»ΠΎΡƒ согласования, записываСт Π΄Π°Π½Π½Ρ‹Π΅ Π² OEBS ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ систСмы. KAMAJI β€” ΠΌΠ½ΠΎΠ³ΠΎΡ€ΡƒΠΊΠΈΠΉ сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠΈΠ΄Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠΏΠ»ΠΈΠ²ΠΎ основных Π΄Π°Π½Π½Ρ‹Ρ… Π² OEBS для использования Π² ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… опСрациях.

КакиС Π·Π°Π΄Π°Ρ‡ΠΈ вас ΠΆΠ΄ΡƒΡ‚
– Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° микросСрвисов
БтараСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ самыС соврСмСнныС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ стСк: Java 17–22, Spring 3, PostgreSQL 15 ΠΈ 16.
– Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ систСм
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ OpenAPI для описания REST-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ², ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ сСрвисы Π²ΠΎΠΎΠ±Ρ‰Π΅, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ обмСниваСмся Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Logbroker ΠΈ SQS.
– УчастиС Π² Ρ€Π°Π·Π½Ρ‹Ρ… этапах ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²
Наши Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΎΡ†Π΅Π½ΠΊΠ΅ Π·Π°Π΄Π°Ρ‡, этапов ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². ВмСстС ΠΌΡ‹ занимаСмся Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, описываСм схСмы взаимодСйствия ΠΈ раздСляСм прилоТСния Π½Π° сСрвисы. Π‘ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΈΠΌΠ»ΠΈΠ΄Π°ΠΌΠΈ ΠΈ Ρ‚Π΅Ρ…Π»ΠΈΠ΄Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². ΠœΡ‹ стрСмимся Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ всСх Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ ΠΈΡ… поТСлания: ΠΊΡƒΠ΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ хотят расти.

ΠœΡ‹ ΠΆΠ΄Ρ‘ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹
– ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π½Π° Java (Spring, Spring Boot, Spring Security)
– Π—Π½Π°Π΅Ρ‚Π΅ SQL ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с рСляционными Π‘Π”
– Π Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Docker ΠΈ Linux
– Аккуратны ΠΈ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ дСталям
– Π£ΠΌΠ΅Π΅Ρ‚Π΅ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΡŽΠ½ΠΈΡ‚-тСсты
– Π“ΠΎΡ‚ΠΎΠ²Ρ‹ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ тСхничСскиС ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

ΠžΡ‚ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒΡΡ
πŸ‘7❀2πŸ”₯2
πŸ’‘ΠšΠ°ΠΊΠΈΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ?

Один ΠΈΠ· Π½ΠΈΡ… β€” ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ "Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ° обязанностСй". ИмСнно Π΅Π³ΠΎ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ Π² Otus.

На ΡƒΡ€ΠΎΠΊΠ΅ рассмотрим:

β€” ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаблон для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡
β€” ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ классы ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сообщСниС Π±Ρ‹Π»ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ
β€” рассмотрим возмоТности настройки ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° ΠΈ условий ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… сообщСний

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

Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ прямо сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ бСсплатный ΡƒΡ€ΠΎΠΊ: https://vk.cc/cxhYKo
πŸ‘5πŸ”₯2😁2❀1
Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΠ²?

Для
Π½Π°Ρ‡Π°Π»Π° разбСрСмся, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΠ². Type inference – это ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ компилятора Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π·Π° вас. На ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ спросит Π΄Π΅Ρ‚Π°Π»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‚ΠΈΠΏΠΎΠ², достаточно Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ происходит статичСски, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° основании Ρ‚ΠΈΠΏΠΎΠ² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. По сути, вопрос Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π΅ Π² Β«ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?Β», Π° Β«Ρ‡Ρ‚ΠΎ это ΠΈ ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚?Β».

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ ΠΏΡ€ΠΈ Ρ„Ρ€Π°Π·Π΅ Β«Π²Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΠ²Β» – diamond operator <>. Он появился Π² Java с вСрсии 7. Π•Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΠΊ конструкторам Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊ классов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ автоматичСского Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‚ΠΈΠΏΠ° ΠΎΡ‚ raw type.

Π‘ Java 9 diamond operator Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΈ для Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… классов.

Для Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ явно, Π½ΠΎ diamond синтаксичСски нСдопустим – Π²Ρ‹Π²ΠΎΠ΄ ΠΈ Ρ‚Π°ΠΊ сработаСт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π’ Java 10 для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‚ΠΈΠΏΠ° локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово var. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ это Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ соврСмСнных языков – ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ставится вмСсто Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈ объявлСнии.

Π’ΠΈΠΏΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² лямбда-выраТСния Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ. Π‘ Java 11 вмСсто Ρ‚ΠΈΠΏΠ° указываСтся ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово var. Π’Π°ΠΊΠΎΠΉ синтаксис Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ.
πŸ‘10πŸ”₯1
⁉️ Как Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ максимально быстро ΠΈ эффСктивно ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… сотни строк сразу?

Π£Π·Π½Π°ΠΉΡ‚Π΅ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ практичСском ΡƒΡ€ΠΎΠΊΠ΅ Β«ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ batch-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² JdbcΒ» ΠΎΡ‚ OTUS. Познакомимся с возмоТностями инструмСнта, ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠΌ Π½Π° всС Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ вопросы.

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

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

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

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘5❀1πŸ”₯1
Π§Π΅ΠΌ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс отличаСтся ΠΎΡ‚ лямбды?

Лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ лСгковСсный синтаксис. НС Π½ΡƒΠΆΠ½ΠΎ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ лямбда Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ – ΠΎΠ½ автоматичСски вывСдСтся ΠΈΠ· контСкста. Лямбда-выраТСния Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² язык Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΊΠ°ΠΊ синтаксичСский сахар.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ρƒ класса Π΅ΡΡ‚ΡŒ поля. ЭкзСмпляр Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ класса сохраняСт своС состояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ, ΠΈ мСняСт Π΅Π³ΠΎ ΠΏΡ€ΠΈ нСобходимости. Для лямбды доступСн лишь Π·Π°Ρ…Π²Π°Ρ‚ ΠΈ effectively final использованиС Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Лямбдой рСализуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс – это Ρ‚ΠΈΠΏ с СдинствСнным абстрактным ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ. Анонимным классом ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ любой Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ класс ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс с Π»ΡŽΠ±Ρ‹ΠΌ количСством абстрактных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Анонимный класс создаСт Π½ΠΎΠ²Ρ‹ΠΉ скоуп, лямбда Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ снаруТи, Π² лямбдС Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции Β«variable is already definedΒ», Π² Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΌ классС скроСт (shadowing) внСшнюю ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ JVM, для лямбды Π½Π΅ создаСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ .class Ρ„Π°ΠΉΠ»Π°, ΠΊΠ°ΠΊ это происходит для Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ класса. БоотвСтствСнно, Π½Π΅ происходит ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ класса. ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ invokedynamic ΠΈ класс гСнСрируСтся Π½Π° Π»Π΅Ρ‚Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ LambdaMetafactory. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ лямбда-выраТСния ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ быстрСС.
πŸ‘31πŸ”₯2
🎯 Как Π΄ΠΆΡƒΠ½Ρƒ Π² Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΌΠΈΠ½ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поиски Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΎΡ„Ρ„Π΅Ρ€Π° ΠΈ Π·Π°Π»Π΅Ρ‚Π΅Ρ‚ΡŒ сразу Π½Π° ΠΌΠΈΠ΄Π»Π°?

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

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

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

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

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

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

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

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ₯°6🀣4πŸ‘2πŸ”₯2
Как ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°?

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚-массив. Π’ Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ любоС количСство элСмСнтов. Π•Ρ‰Π΅ с Java 5 для этого случая добавился синтаксичСский сахар: Variable-length argument (vararg). Π’Ρ€ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ ... ставятся ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΈΠΏΠΎΠΌ ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈ становится ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ любоС количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½Π΅ упаковывая ΠΈΡ… Π² массив.

На ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ массива ΠΈ Π²Π°Ρ€Π°Ρ€Π³Π° Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ: vararg-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Foo... прСвращаСтся Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€-массив Foo[], Π½Π° этапС Π²Ρ‹Π·ΠΎΠ²Π° подставляСтся нСявноС инстанцированиС ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСоднозначностСй, Π½Π° vararg Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅: ΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ послСдний Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚.

Vararg, ΠΊΠ°ΠΊ массив, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустым. Иногда это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΌΡƒ повСдСнию. Допустим, ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ int... ΠΈ float.... Π’Ρ‹Π·ΠΎΠ² Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ с int, ΠΊΠ°ΠΊ с Π±ΠΎΠ»Π΅Π΅ спСцифичным Ρ‚ΠΈΠΏΠΎΠΌ. НаличиС ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ с нСсовмСстимыми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ int... ΠΈ boolean..., ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΊ ошибкС компиляции Β«Ambiguous method callΒ».

Когда Ρ‚ΠΈΠΏΠΎΠΌ Π²Π°Ρ€Π°Ρ€Π³Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ generic-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ warning Β«Possible heap pollution from parameterized vararg typeΒ». Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ Π² Ρ‡Π΅ΠΌ этот риск, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ΄ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ heap pollution, ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠΈΡ‚ΡŒ ΠΎΠ± этом компилятор Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ
@SafeVarargs.
πŸ‘9πŸ”₯2
Π§Ρ‚ΠΎ Ссли Π±Π»ΠΎΠΊ finally выбросит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅?

Π‘Π»ΠΎΠΊ finally выполняСтся Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π»ΠΎ Π»ΠΈ Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ Π² Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ΅ try ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Когда ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π² try, Π½ΠΎ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π² finally, Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ интСрСсного. Π­Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ стСку Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΏΠΎΠΊΠ° Π½Π΅ попадСтся Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΅ΠΌΡƒ catch.

Вопрос ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ случай, ΠΊΠΎΠ³Π΄Π° исполнСниС ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² finally Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ выброса ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ· try. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· finally Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ собой ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· try ΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ стСку вмСсто Π½Π΅Π³ΠΎ. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ попросту Π·Π°Π±Ρ‹Ρ‚Π°.

Вакая маскировка ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ услоТняСт ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π΅Ρ‘. НапримСр IntelliJ IDEA Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ throw Π²Π½ΡƒΡ‚Ρ€ΠΈ finally.
πŸ‘21
πŸ‘©β€πŸ’» ΠšΡƒΡ€Ρ для Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ роста.

ΠŸΡ€ΠΎΠΉΠ΄ΠΈ тСст ΠΏΠΎ Java ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒ свои знания, Π³ΠΎΡ‚ΠΎΠ² Π»ΠΈ Ρ‚Ρ‹ ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ Π½Π° курсС.

ΠžΡ‚Π²Π΅Ρ‚ΠΈΡˆΡŒ β€” ΠΏΡ€ΠΎΠΉΠ΄Π΅ΡˆΡŒ Π½Π° ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ курс "Java Developer. Professional" ΠΎΡ‚ OTUS ΠΏΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅Π½Π΅ + ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡˆΡŒ доступ ΠΊ записям ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΡƒΡ€ΠΎΠΊΠΎΠ² курса курса

πŸ‘‰ ΠŸΠ ΠžΠ™Π’Π˜ Π’Π•Π‘Π’: https://vk.cc/cxzkto

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘5πŸ”₯2
Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ 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