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

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

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

ΠœΡ‹ Π½Π° Π±ΠΈΡ€ΠΆΠ΅: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ Π½Π° Infra Meetup #3 β€” ΠΌΠΈΡ‚Π°ΠΏ ΠΏΡ€ΠΎ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ ЯндСкс Вакси ΠΈ Π’Π΅Ρ…ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π•ΠΊΠΎΠΌΠ° ΠΈ Π Π°ΠΉΠ΄Ρ‚Π΅Ρ…Π°

На ΠΌΠΈΡ‚Π°ΠΏΠ΅ подСлимся трСмя Π΄ΠΎΠΊΠ»Π°Π΄Π°ΠΌΠΈ ΠΎΠ± инструмСнтах надСТности Π² Вакси, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Π±ΠΈΠ»Π»ΠΈΠ½Π³Π° Π•ΠΊΠΎΠΌΠ° ΠΈ Π Π°ΠΉΠ΄Ρ‚Π΅Ρ…Π° ΠΈ возмоТностях Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° userver для поддСрТания отказоустойчивости. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΌΠΈΡ‚Π°ΠΏΠ° участников ΠΆΠ΄Π΅Ρ‚ Π½Π΅Ρ‚Π²ΠΎΡ€ΠΊΠΈΠ½Π³ ΠΈ экскурсия ΠΏΠΎ питСрскому офису.

Π€ΠΎΡ€ΠΌΠ°Ρ‚: ΠΎΡ„Π»Π°ΠΉΠ½ ΠΈΠ»ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½
ΠœΠ΅ΡΡ‚ΠΎ встрСчи: Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, Π‘Π¦ Β«Π‘Π΅Π½ΡƒΠ°Β»
Π”Π°Ρ‚Π° ΠΈ врСмя: 29 фСвраля, 18:00

БСсплатно. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΡ„Π»Π°ΠΉΠ½ мСст ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ. РСгистрация ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

РСклама. ООО "ЯндСкс.Вакси", ИНН: 7704340310
πŸ‘7πŸ”₯2πŸ₯΄1
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Type Erasure?

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ удаляСт ΠΈΠ· Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° класс-Ρ„Π°ΠΉΠ»Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ…-Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°Ρ…. Π­Ρ‚ΠΎΡ‚ процСсс ΠΈ называСтся стираниС Ρ‚ΠΈΠΏΠΎΠ² (type erasure). Он появился Π² Java 5 вмСстС с самими Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°ΠΌΠΈ. Π’Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π±Π΅Π· пСрСкомпилляции ΠΊΠΎΠ΄Π° Java 4.

Π‘Ρ‚ΠΈΡ€Π°Π½ΠΈΠ΅ состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… дСйствий:
πŸ”˜ Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ (bounded), вмСсто Ρ‚ΠΈΠΏΠ°-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² мСстах использования подставляСтся вСрхняя Π³Ρ€Π°Π½ΠΈΡ†Π°, ΠΈΠ½Π°Ρ‡Π΅ Object;
πŸ”˜ Π’ мСстах присвоСния значСния Ρ‚ΠΈΠΏΠ°-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° добавляСтся каст ΠΊ этому Ρ‚ΠΈΠΏΡƒ;
πŸ”˜ Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ bridge-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… стираСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠΎΠ»Π΅ΠΉ, Π½ΠΎ остаСтся Π² ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ самого класса. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅Ρ„Π»Π΅ΠΊΡˆΠ½Π°, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Field#getGenericType.

Π’ΠΈΠΏ со стСртой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°Ρ… называСтся Β«Non-reifiableΒ».

Π‘Ρ‚ΠΈΡ€Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² позволяСт Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ² Π½ΠΎΠ²Ρ‹Π΅ классы, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, шаблонов C++.
πŸ‘18πŸ”₯2
πŸ‘©β€πŸ’» ΠŸΡ€ΠΎΠΉΠ΄ΠΈ тСст ΠΏΠΎ Java ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒ свои знания.

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

πŸ” ОбновлСнная, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

Π“Ρ€ΡƒΠΏΠΏΠ° стартуСт 29 фСвраля - успСй присоСдинится Π½Π° Π²Ρ‹Π³ΠΎΠ΄Π½Ρ‹Ρ… условиях.

πŸ‘‰ ΠŸΠ ΠžΠ™Π’Π˜ Π’Π•Π‘Π’: https://otus.pw/TQgg/

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

Π’ объявлСнии Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° класса ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π° Π΅Π³ΠΎ вСрхняя Π³Ρ€Π°Π½ΠΈΡ†Π° (bound)

class Foo<T extends Number>

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово extends примСняСтся ΠΊΠ°ΠΊ для классов, Ρ‚Π°ΠΊ ΠΈ для интСрфСйсов. ЀактичСским ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ класса Foo ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ сам Number, ΠΈΠ»ΠΈ Π΅Π³ΠΎ наслСдники.

Помимо ограничСния Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… примСняСмых Ρ‚ΠΈΠΏΠΎΠ², bounded-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π΄Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ поля Ρ‚ΠΈΠΏΠ°-ограничитСля – ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ фактичСского Ρ‚ΠΈΠΏΠ°. Π­Ρ‚ΠΎ достигаСтся стираниСм Ρ‚ΠΈΠΏΠ°-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π΄ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

Π’ΠΈΠΏ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько Π²Π΅Ρ€Ρ…Π½ΠΈΡ… Π³Ρ€Π°Π½ΠΈΡ†, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ-пСрСсСчСниС Ρ‚ΠΈΠΏΠΎΠ²: <T extends Comparable & Serializable>. Π‘Ρ‚ΠΈΡ€Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΠ· Π³Ρ€Π°Π½ΠΈΡ†, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ послуТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² фактичСского Ρ‚ΠΈΠΏΠ°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π³Ρ€Π°Π½ΠΈΡ†Π°-класс, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π° Ρ€Π°Π½ΡŒΡˆΠ΅ Π³Ρ€Π°Π½ΠΈΡ†-интСрфСйсов.
ΠŸΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ значСния Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован Π²Π°ΠΉΠ»Π΄ΠΊΠ°Ρ€Π΄ – символ ?. Π’Π°ΠΉΠ»Π΄ΠΊΠ°Ρ€Π΄ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Ρ‚ΠΈΠΏΠ΅, этот Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ совсСм.

Для Π²Π°ΠΉΠ»Π΄ΠΊΠ°Ρ€Π΄Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ для объявлСния Ρ‚ΠΈΠΏΠ°-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ. Но Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ объявлСния здСсь нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ пСрСсСчСниС Ρ‚ΠΈΠΏΠΎΠ², ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Π² случаС Π²Π°ΠΉΠ»Π΄ΠΊΠ°Ρ€Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ниТнюю Π³Ρ€Π°Π½ΠΈΡ†Ρƒ

Foo<? super Number> foo;

ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Ρ‚ΠΈΠΏΠ΅, Π½ΠΎ Π±ΡƒΠ΄Π΅ΠΌ Π·Π½Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это ΠΏΡ€Π΅Π΄ΠΎΠΊ класса Number. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ»ΠΈ сам Number, ΠΈΠ»ΠΈ Object.

Π’ объявлСнии класса ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° использованиС super Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла.

Π Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² использования ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… Π²Π°ΠΉΠ»Π΄ΠΊΠ°Ρ€Π΄ΠΎΠ² ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚
это Π²ΠΈΠ΄Π΅ΠΎ.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ API Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΌΠ΅Ρ‚ΡŒ эффСктивно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с классами-наслСдниками, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎ- ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹ΠΌ Π³Π΄Π΅ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. ΠŸΡ€ΠΈ этом Π±Π΅Π· bounded Π²Π°ΠΉΠ»Π΄ΠΊΠ°Ρ€Π΄ΠΎΠ² Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, какая Π³Ρ€Π°Π½ΠΈΡ†Π° Π½ΡƒΠΆΠ½Π° Π² ΠΊΠ°ΠΊΠΈΡ… случаях, Joshua Bloch ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΡƒ PECS:
Producer-extends, Consumer-super
πŸ‘11❀3πŸ”₯2
ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ бСсплатному курсу ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ Π² ΠΌΠΈΡ€ Java!

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

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

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

Π’Ρ‹ с Π½Π°ΠΌΠΈ?πŸ˜‰
❀8πŸ”₯4
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ?

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ/ΠΊΠΎΠ½Ρ‚Ρ€Π°Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ² – это сохранСниС/ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ порядка наслСдования для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². ΠŸΡ€ΠΎΡ‰Π΅ говоря, ΠΊΠΎΠ³Π΄Π° Ρƒ ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹Ρ… сущностСй Ρ‚ΠΈΠΏΠ°ΠΌΠΈ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΈ наслСдник, ΠΎΠ½ΠΈ сами становятся ΠΊΠ°ΠΊ Π±Ρ‹ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΈ наслСдником. ΠšΠΎΠ½Ρ‚Ρ€Π°Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹Π΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, становятся наслСдником ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ.

Π›Π΅Π³Ρ‡Π΅ всСго ΠΎΡΠΎΠ·Π½Π°Ρ‚ΡŒ эти понятия Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…:
πŸ”˜ ΠšΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ: List<Integer> ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° List<? extends Number> (ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½ наслСдник List<Number>).
πŸ”˜ ΠšΠΎΠ½Ρ‚Ρ€Π°Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ: Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° List<Number>
#sort Ρ‚ΠΈΠΏΠ° Comparator<? super Number> ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Comparator<Object> (ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Comparator<Number>)

ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Β«ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒΒ» – Π½Π΅ совсСм наслСдованиС, Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ совмСстимыми (ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Β«is aΒ»).

БущСствуСт Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ связанноС понятиС – ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ. Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ – это отсутствиС свойств ковариантности ΠΈ контрвариантности. Π”ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ Π±Π΅Π· Π²Π°ΠΉΠ»Π΄ΠΊΠ°Ρ€Π΄ΠΎΠ² ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹: List<Number> нСльзя ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π½ΠΈ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° List<Double>, Π½ΠΈ Π² List<Object>.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹: Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Object[] ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° String[].

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² начиная с Java 5 ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΈΠΏΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.
πŸ‘16πŸ€”3πŸŽ‰3❀1πŸ”₯1
Π”Π΅Π²ΡΡ‚ΡŒ шаблонов проСктирования ПО, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ!

ΠžΡΠ²ΠΎΠΉΡ‚Π΅ ΠΈΡ… Π½Π° бСсплатном практичСском ΡƒΡ€ΠΎΠΊΠ΅ ΠΎΡ‚ OTUS ΠΈ АндрСя Полякова β€” ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π² Unlimint.

βœ…ΠŸΠΎΡΠ»Π΅ Π²Π΅Π±ΠΈΠ½Π°Ρ€Π° Π²Ρ‹ смоТСтС:
– ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² основС шаблонов GRASP;
– ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящиС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²;
– Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, основанныС Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… GRASP, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ качСствСнноС ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ПО.

ЗанятиС ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚ 29 фСвраля Π² 20:00 мск Π² Ρ€Π°ΠΌΠΊΠ°Ρ… курса «АрхитСктура ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования». Доступна рассрочка Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅!

➑️ ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ тСст прямо сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ бСсплатный ΡƒΡ€ΠΎΠΊ ΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ обучСния: ΠΏΡ€ΠΎΠΉΡ‚ΠΈ тСст

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

Π’ Java отсутствуСт ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ – ΠΈΡ… Ρ‚ΠΈΠΏΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ классС. Когда Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ конкрСтизируСтся Π² наслСдникС, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ этого Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊ Ρ‚ΠΈΠΏΠ° большС Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ Π² Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π΅ – Π² наслСдникС Ρ‚ΠΈΠΏ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ, Π° Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ стСртый Π΄ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ простым ΠΈ бСзопасным кастом. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ совпадаСт ΠΏΠΎ сигнатурС с Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ. Π’ Π΅Π³ΠΎ Ρ‚Π΅Π»Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ кастуСтся ΠΈ Π²Ρ‹Π·ΠΎΠ² дСлСгируСтся Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄. Π­Ρ‚ΠΎ ΠΈ называСтся bridge ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ.

Bridge method ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅Ρ„Π»Π΅ΠΊΡˆΠ½Π°. Π•Π³ΠΎ имя совпадаСт с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, Π½ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сотрСтся Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊ родитСля. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ Ρ„Π»Π°Π³ΠΎΠΌ synthetic, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ написан Π½Π΅ программистом Π° компилятором.

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС компиляции.
πŸ‘21πŸ”₯4πŸ‘2❀‍πŸ”₯1❀1
⁉️ Как ΡΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Π½Π° Spring Π² 2024?

Π£Π·Π½Π°ΠΉΡ‚Π΅ Π½Π° бСсплатном практичСском ΡƒΡ€ΠΎΠΊΠ΅ ΠΎΡ‚ OTUS, Π³Π΄Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ экспСрт ΠΏΡ€ΠΈΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π·Π°ΠΊΡƒΠ»ΠΈΡΡŒΠ΅ нашСго курса ΠΈ расскаТСт:

βœ”οΈ ΠΊΠ°ΠΊ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ максимум практичСских Π½Π°Π²Ρ‹ΠΊΠΎΠ²;
βœ”οΈ ΠΊΠ°ΠΊΠΈΠ΅ трСбования ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅ΠΌ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ студСнтов;
βœ”οΈ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ рСализация ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

πŸ“’πŸ“’ ЗанятиС ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚ 28 фСвраля Π² 20:00 мск ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΡƒΡ€ΠΎΡ‡Π΅Π½ΠΎ ΠΊ старту курса Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° Spring FrameworkΒ».
Доступна рассрочка Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅!

➑️ ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ тСст прямо сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π½ΡΡ‚ΡŒ мСсто Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ запись: https://otus.pw/VSkT/

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘5πŸ”₯3
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ heap pollution?

Как Π±Ρ‹Π»ΠΎ сказано Ρ€Π°Π½Π΅Π΅, массивы Π² Java ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹. А Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Ρ‚ΠΈΠΏΠ° String[] Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° Object[], ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Integer. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ скомпилируСтся, Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ записи ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ArrayStoreException.

Π”ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ. Если ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ List<Object> Π² List<String>, эта ΠΆΠ΅ ΠΏΠΎ сути ошибка ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ Π½Π° этапС компиляции.

Heap pollution – ситуация, ΠΊΠΎΠ³Π΄Π° эта Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π΅ срабатываСт, ΠΈ пСрСмСнная ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

List<String> strings = (List) new ArrayList<Integer>();

ДокумСнтация Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ компиляции всСго ΠΊΠΎΠ΄Π° Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, heap pollution Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π±Π΅Π· Π²Π°Ρ€Π½ΠΈΠ½Π³Π° этапа компиляции.
Heap pollution ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Π² Π΄Π²ΡƒΡ… случаях: ΠΏΡ€ΠΈ использовании массивов Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ² ΠΈ ΠΏΡ€ΠΈ смСшивании ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈ raw-Ρ‚ΠΈΠΏΠΎΠ².

Raw types – это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π±Π΅Π· указания ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ с raw types, приводящий ΠΊ heap pollution, ΡƒΠΆΠ΅ Π±Ρ‹Π» описан Π²Ρ‹ΡˆΠ΅:

List<String> strings = (List) new ArrayList<Integer>();

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ raw types Π½Π΅ Π½Π°Π΄ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ Π² Π³Π»Π°Π²Π΅ 26 Effective Java. Если информация ΠΎ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°Ρ… Π½Π΅ Π½ΡƒΠΆΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ wildcard (<?>).

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ даст ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС generic array creation. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π²Ρ‹ΡˆΠ΅ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚, ΠΊ Ρ‡Π΅ΠΌΡƒ это ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ привСсти.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ varargs-Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‚.ΠΊ. varargs – Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€-массив. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ компилятора Β«possible heap pollutionΒ». Если Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Ρ‡Ρ‚ΠΎ риска Π½Π΅Ρ‚, с Java 7 это ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π°Π³Π»ΡƒΡˆΠ°Π΅Ρ‚ΡΡ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ
@SafeVarargs.
πŸ‘12πŸ”₯3❀2πŸ₯°1
πŸ’ͺ Как Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΡ…ΠΎΠ΄ Π² 2024?

ΠžΡΠ²ΠΎΠΈΡ‚ΡŒ JVM с ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΠΊΠ°Ρ… Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½-курсС Β«Java Developer. AdvancedΒ» ΠΎΡ‚ OTUS.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° идСально ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ для Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² с ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ ΠΎΡ‚ 2-Ρ… Π»Π΅Ρ‚, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒ знания Π² устройствС JVM, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… профилирования ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктурС.

На курсС вас ΠΆΠ΄ΡƒΡ‚:

▫️ ΠΆΠΈΠ²Ρ‹Π΅ Π²Π΅Π±ΠΈΠ½Π°Ρ€Ρ‹ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π΄Π°Ρ‚ΡŒ вопросы экспСртам;
▫️много ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ для ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ;
▫️поддСрТка ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ;
▫️ рассрочка Π½Π° ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½Ρ‹Ρ… условиях.

🀝 ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свои Π½Π°Π²Ρ‹ΠΊΠΈ пройдя тСст ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Ρƒ: https://otus.pw/LiVg/

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

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

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

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

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

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

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

Π’Π½ΡƒΡ‚Ρ€ΠΈ класса class Foo<T> Π½Π° generic ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ T Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€: нСльзя Π²Π·ΡΡ‚ΡŒ Π΅Π³ΠΎ .class, нСльзя ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² instanceof. Π’Π°ΠΊΠΆΠ΅ ΠΈ Π²Ρ‹Π·ΠΎΠ² Π½Π° Π½Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° этих ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ кроСтся Π² стирании Ρ‚ΠΈΠΏΠΎΠ². Π”ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ скорСС ΠΊΠ°ΠΊ ограничСния Ρ‚ΠΈΠΏΠΎΠ², Ρ‡Π΅ΠΌ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹. Π­Ρ‚ΠΈ ограничСния Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ для Π±ΠΎΠ»Π΅Π΅ строгих ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π½Π° этапС компиляции. Π’ Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅ ΠΆΠ΅ информация ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ…-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… стираСтся. А всС эти ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ простой способ дСйствия здСсь – ΠΊΡ€ΠΎΠΌΠ΅ значСния Ρ‚ΠΈΠΏΠ° T ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-дСскриптор для этого Ρ‚ΠΈΠΏΠ°, экзСмпляр класса Class<T>. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создан ΠΈΠ· дСскриптора Ρ€Π΅Ρ„Π»Π΅ΠΊΡˆΠ΅Π½ΠΎΠΌ.

Но сущСствуСт ΠΎΠ΄ΠΈΠ½ Ρ…Π°ΠΊ, способный ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ со стираниСм Ρ‚ΠΈΠΏΠΎΠ². Π’ΠΈΠΏ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ всС-Ρ‚Π°ΠΊΠΈ остаСтся Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅. ΠœΠ΅Ρ‚ΠΎΠ΄ мСтакласса наслСдника ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ²ΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ getGenericSuperclass() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ.
πŸ‘12❀3β˜ƒ1
БСсплатный практичСский Π²Π΅Π±ΠΈΠ½Π°Ρ€ β€” Java: с Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρƒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ?

⏰ Когда: 29 фСвраля Π² 19:00 ΠΏΠΎ мск.

РасскаТСм Π·Π° 2 часа, ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ программирования Π½Π° Java, Π½Π°ΠΉΡ‚ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ расти Π² профСссии.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ познакомимся с синтаксисом языка ΠΈ напишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ часто Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ Π½Π° тСхничСском ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ.

🎁 ВсСм, ΠΊΡ‚ΠΎ зарСгистрировался β€” Π“Π°ΠΉΠ΄ «Как Π·Π°Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π½Π° слСнгС IT-спСциалистов», Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ участнику β€” ΠšΠ°Ρ€Ρ‚Π° ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ†ΠΈΠΉ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. 

ΠŸΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ΡΡŒ Π² основы Java ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ вопросы ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ!
πŸ‘3
Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ArrayStoreException?

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

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

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

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

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

// Ошибка компиляции – Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹!
List<Object> x = new ArrayList<String>();
πŸ‘13❀1
МоТно Π»ΠΈ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ generic-Ρ‚ΠΈΠΏΠ°?

ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚ – Π΄Π°. Как Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΊΠ°Π²Π΅Ρ€Π·Π½Ρ‹Ρ… вопросов ΠΏΡ€ΠΎ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ, ΠΎΡ‚Π²Π΅Ρ‚ становится ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ Ссли ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Π²ΠΎ Ρ‡Ρ‚ΠΎ сотрутся Ρ‚ΠΈΠΏΡ‹-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ выбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° T, этот Ρ‚ΠΈΠΏ T Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ объявлСн Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠΌ Throwable. ИмСнно Π² Throwable Π² Ρ‚Π°ΠΊΠΎΠΌ случаС сотрСтся T ΠΏΡ€ΠΈ компиляции. Π’Π°ΠΊΠΆΠ΅ Π² качСствС Ρ‚ΠΈΠΏΠ°-Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любого наслСдника Throwable:

class MyClass<T extends IOException> {
void foo() throws T {
// ...
}
}
πŸ‘13πŸ”₯4
НачинаСм Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ нСдСлю с ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΠΈ бСсплатных ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… Π²Π΅Π±ΠΈΠ½Π°Ρ€ΠΎΠ² ΠΎΡ‚ Β«Π£ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡ€ΠΎΠ΄Π°Β»!

27 фСвраля Π² 20:00 – Онлайн мастСр-класс "Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±-Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π±Π°Π½Π½Π΅Ρ€Π° для сайта"
Аудитория: взрослыС 18-35 Π»Π΅Ρ‚
Бсылка Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ: https://nordic-it-school.timepad.ru/event/2757299/

27 фСвраля Π² 17:00 – Онлайн мастСр-класс для Π΄Π΅Ρ‚Π΅ΠΉ ΠΎΡ‚ 8 Π»Π΅Ρ‚ Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ – ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ Π² ScratchΒ».
Бсылка Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ: https://www.programmistik.ru/events/translator_scratch

28 фСвраля Π² 20:00 – Онлайн мастСр-класс "Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния ΠΏΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ английского языка Π½Π° языкС Kotlin для Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Android"
Аудитория: взрослыС 18-35 Π»Π΅Ρ‚
Бсылка Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ: https://nordic-it-school.timepad.ru/event/2761604/

29 фСвраля Π² 17:00 – Онлайн мастСр-класс для Π΄Π΅Ρ‚Π΅ΠΉ ΠΎΡ‚ 12 Π»Π΅Ρ‚ Β«Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ½Π»Π°ΠΉΠ½-Ρ„ΠΎΡ‚ΠΎΠ°Π»ΡŒΠ±ΠΎΠΌ Π² конструкторС сайтов TildaΒ».
Бсылка Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ: https://www.programmistik.ru/events/site_foto

ΠœΠ°ΡΡ‚Π΅Ρ€-классы проводятся Π² трансляциях сообщСства павильона Β«Π£ΠΌΠ½Ρ‹ΠΉ Π³ΠΎΡ€ΠΎΠ΄Β». Π’Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ.

АНО «Цифровая трансформация» ИНН: 9709063543 Π•rid:2VtzqxhnLA6
❀6πŸ‘2
Π”ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ Π² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ… – Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ, Π° Ρ‡Ρ‚ΠΎ нСльзя?

1. МоТно Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ generic-Ρ‚ΠΈΠΏΠ°.
Π’ΠΈΠΏ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ T ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² throws, пСрСмСнная Ρ‚ΠΈΠΏΠ° T ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² throw. НСдавно ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎΠ± этом.

2. НСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊ Π² catch.
ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ catch Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ΄Ρ‚ΠΈ Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ, Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС – ΠΎΡ‚ спСцифичного класса ΠΊ Π±ΠΎΠ»Π΅Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ. Π‘Ρ‚ΠΈΡ€Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² связи с этими ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΎ Π±Ρ‹ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ, Π½Π΅ нСся особой ΠΏΠΎΠ»ΡŒΠ·Ρ‹.

3. НСльзя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс-ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.
Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π²ΠΈΠ΄Π° class MyException<T> extends Throwable {}, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ generic class may not extend java.lang.Throwable.

4. МоТно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ generic-интСрфСйс.
Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Comparable ΠΈΠ»ΠΈ Iterable. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° классах, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ затрагивая интСрфСйсы.
πŸ‘13πŸ”₯2
🀝 Нам каТСтся, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ курсу Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° Spring Framework

На курсС всС максимально строго:

- ΠšΡƒΡ€Ρ рассчитан Π½Π° профСссионалов с практичСским ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Java.
- ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ 5 мСсяцСв ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ вас Π² Ρ‚Π΅ΠΎΡ€ΠΈΡŽ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ Spring Framework.
- Π”Π°Π΄ΠΈΠΌ 18 практичСских Ρ€Π°Π±ΠΎΡ‚. β—οΈΠŸΡ€ΠΎΡ†Π΅ΡΡ review сдаваСмой Ρ€Π°Π±ΠΎΡ‚Ρ‹ максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ ΠΊ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½ ΠΌΠΎΠ³ Π±Ρ‹Ρ‚ΡŒ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.
- Помимо этого, ΠΌΡ‹ попросим вас ΡΠ΄Π°Ρ‚ΡŒ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ трСбования ΠΊ Π½Π΅ΠΉ (p.s. ΠΈ Ρ‡Π΅ΠΌ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Π°)?

🀝 Π“ΠΎΡ‚ΠΎΠ²Ρ‹ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ 28 фСвраля Π½Π° бСсплатном Π΄Π΅ΠΌΠΎ-ΡƒΡ€ΠΎΠΊΠ΅ "Как Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚?"

➑️ Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Π΄Π΅ΠΌΠΎ-ΡƒΡ€ΠΎΠΊ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‰Π΅ ΠΈ тСст ΠΏΡ€ΠΎΠΉΡ‚ΠΈ.
ΠšΡΡ‚Π°Ρ‚ΠΈ, это ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ шанс ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свои знания!

ΠŸΡ€ΠΎΠΉΡ‚ΠΈ тСст

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘5πŸŽ‰2❀1πŸ₯΄1🌚1
Как ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ upcasting Ρ‚ΠΈΠΏΠ°-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°?

Π—Π°Π΄Π°Ρ‡Π°: Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²:

<T> void pair(T a, T b) {}

Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ pair(Foo, Foo), Π½ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ pair(Foo, Bar).

Upcasting – ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΈΠΏΡƒ-Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŽ. String β†’ Object, Integer β†’ Number.

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ Π»ΡŽΠ±Ρ‹Ρ… Π΄Π²ΡƒΡ… классов Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€Π΅Π΄ΠΎΠΊ: ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Object. Если Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ String ΠΈ Boolean – согласно ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ вычислСния Ρ‚ΠΈΠΏΠ°-Π³Ρ€Π°Π½ΠΈΡ†Ρ‹, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ T Π±ΡƒΠ΄Π΅Ρ‚ стСрт Π² Object.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ super Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚: для этого Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΈΠΏ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ.

Ѐокус Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° этапС компиляции это Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ любого Ρ‚ΠΈΠΏΠ° всСгда являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚ΠΈΠΏΠ°-родитСля (ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ is a). Π­Ρ‚ΠΎ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ООП, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π°Ρ€ΡƒΡˆΠ°Π» Π±Ρ‹ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ подстановки Лисков.

ЕдинствСнная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ повСдСния – с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ getClass() ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ классы ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅.
πŸ‘12πŸ”₯2