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

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

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

ΠœΡ‹ Π½Π° Π±ΠΈΡ€ΠΆΠ΅: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² IT?
А Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ всСго Π·Π° час ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ! Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ «Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° Python ΠΈ Java с нуля»!

Новички Π² IT ΡƒΠ·Π½Π°ΡŽΡ‚:
- ΠΊΠ°ΠΊΠΎΠΉ язык программирования Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ для старта
- ΠΊΠ°ΠΊ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
- ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Python ΠΈ Java Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅
- ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° GitHub ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с рСпозиториями
- ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ инструмСнты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ роста

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, ΠΈ Ρ‚Π΅, ΠΊΡ‚ΠΎ ΠΈΡ‰Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ возмоТности Π² IT:
- ΠΏΠΎΠΉΠΌΡ‘Ρ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ IT-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ сСйчас вострСбованы
- ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΏΡ€ΠΎΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ смСны Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
- ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ быстрой сборки ΠΈ быстрого развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
- ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎ Π½ΠΎΠ²Ρ‹Ρ… возмоТностях для обучСния ΠΈ развития

Π’Π°ΠΊΠΆΠ΅ вас ΠΆΠ΄Ρ‘Ρ‚ ΠΊΠ²ΠΈΠ· с ΠΏΡ€ΠΈΠ·Π°ΠΌΠΈ!

Π‘ΠΏΠΈΠΊΠ΅Ρ€Ρ‹:
Π‘ΡƒΡ€Π΅Π½ Π₯орСнян: бэкСнд-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° Python, Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Β«VK Π Π΅ΠΊΠ»Π°ΠΌΠ΅Β»
Π‘Π΅Ρ€Π³Π΅ΠΉ ΠŸΡ€ΠΎΡ‰Π°Π΅Π²: Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ

Бонус! Π‘ΠΊΠΈΠ΄ΠΊΠ° 7% Π½Π° любой курс OTUS ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Π² ΠΏΠΎΠ΄Π°Ρ€ΠΎΠΊ!

18 апрСля, 19:00 МБК
БСсплатно

Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° событиС - https://otus.pw/dGDW/?erid=2W5zFG1zvQG

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО "ОВУБ ΠžΠΠ›ΠΠ™Π-ΠžΠ‘Π ΠΠ—ΠžΠ’ΠΠΠ˜Π•". ИНН 9705100963.
πŸ‘6❀2πŸ”₯2
new Integer(128) == 128?

Для всСх классов-ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ Π½Π°Π΄ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°ΠΌΠΈ ΠΊΡ€ΠΎΠΌΠ΅ Float ΠΈ Double Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. НСкоторыС значСния ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½Π° этапС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса, ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создаСтся Π½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ new (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ valueOf).

ΠšΡΡˆΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ значСния – ΠΎΠ±Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Boolean, Character Π΄ΠΎ '\u007f' (127) ΠΈ всС Ρ†Π΅Π»Ρ‹Π΅ числа ΠΎΡ‚ -128 Π΄ΠΎ 127 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π‘ Java 7 Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ для Integer ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ java.lang.Integer.IntegerCache.high.

ЗначСния ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… встроСнных классах: BigDecimal, Currency, пустыС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π”Π΅Ρ‚Π°Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ ΠΈΠ· исходников ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эти кэши Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π½Π΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ JVM Π° Π² ΠΊΠΎΠ΄Π΅ классов.

Π’ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ скрыт Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Π²ΠΎΡ…: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ сравниваСтся с ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ анбоксингу ΠΈ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. И ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° вопрос – Π΄Π°.


Java GuruπŸ€“ #java
πŸ‘17❀4πŸ”₯4
Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ хранящСй null?

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ссли пСрСмСнная Π½Π΅ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ L-value этого Ρ‚ΠΈΠΏΠ° – ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ null, Π½ΠΎ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚ΠΈΠΏΠ°:
πŸ”˜Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ с null ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ этого ΠΆΠ΅ класса;
πŸ”˜ΠŸΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ‚ΠΈΠΏΡƒ-Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŽ (upcast) ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΡƒ-наслСднику (downcast), учитывая Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ generic-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ;
πŸ”˜ΠžΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ экзСмпляра ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ NullPointerException;
πŸ”˜ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ instanceof ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ false
πŸ”˜Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… совмСстимых с Ρ‚ΠΈΠΏΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ статичСским Ρ‡Π»Π΅Π½Π°ΠΌ класса. Π’ вопросС подразумСваСтся ΠΈΠΌΠ΅Π½Π½ΠΎ эта интСрСсная Ρ‡Π°ΡΡ‚ΡŒ. Π­Ρ‚ΠΎ бСзопасно, NullPointerException Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚, Π½ΠΎ для упрощСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ ΠΈΠ·-Π·Π° отсутствия пСрСопрСдСлСния статичСских Ρ‡Π»Π΅Π½ΠΎΠ² рСкомСндуСтся Ρ‚Π°ΠΊ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ. ВмСсто этого ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ статикС явно Ρ‡Π΅Ρ€Π΅Π· имя класса, Π»ΠΈΠ±ΠΎ нСявно, Π΄ΠΎΠ±Π°Π²ΠΈΠ² для класса import static.


Java GuruπŸ€“ #java
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘13❀4πŸ”₯4😁1
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enum?

enum
– Ρ‚ΠΈΠΏ-пСрСчислСниС. Π‘Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΎΠΊ вопроса, всС ΠΎΠ½ΠΈ сводятся ΠΊ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρƒ ΠΎ пСрСчислСниях Π²ΠΎΠΎΠ±Ρ‰Π΅. ВСхничСски это Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ класс со статичСскими Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ полями-экзСмплярами. enum Foo всСгда нСявно наслСдуСтся ΠΎΡ‚ Enum<Foo> – Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ пСрСчислСниСм нСльзя Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ класс, Π½ΠΎ всё Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйсы. Из-Π·Π° generic-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ€Π°Π·Π½Ρ‹Π΅ пСрСчислСния Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠ° ΠΊΡ€ΠΎΠΌΠ΅ Object.

ЯвляСтся Comparable (сравниваСтся позиция ΠΏΠΎ порядку объявлСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ) ΠΈ Serializable (сСриализуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя константы).

Π˜ΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ЗначСния нСявно public static final ΠΈ это нСльзя ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ. Для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ констант Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ всС ΠΏΡ€Π°Π²ΠΈΠ»Π° статичСской ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Копии элСмСнтов пСрСчислСния Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ дСсСриализации. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Effective Java ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для сСриализуСмого синглтона enum.

ЭкзСмпляры хранят свойства name ΠΈ ordinal – имя ΠΈ порядковый Π½ΠΎΠΌΠ΅Ρ€ константы. БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ values Π²Π΅Ρ€Π½Π΅Ρ‚ список всСх констант, valueOf – константу ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.
БпСцификация.

Ѐинализация ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ пСрСчислСний Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹.


Java GuruπŸ€“ #java
πŸ‘12❀7πŸ”₯4
πŸ‘©β€πŸ’» JDBC β€” ваш ΡˆΠ²Π΅ΠΉΡ†Π°Ρ€ΡΠΊΠΈΠΉ Π½ΠΎΠΆ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ.

πŸ—“ 22 апрСля Π² 20:00 МБК
πŸ†“ БСсплатно. Π£Ρ€ΠΎΠΊ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… старта курса Β«Java Developer. ProfessionalΒ».

О Ρ‡Ρ‘ΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ:
βœ”οΈΠžΡΠ½ΠΎΠ²Ρ‹ JDBC: Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅, Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚
βœ”οΈΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ выполнСния слоТных запросов
βœ”οΈΠ Π°Π±ΠΎΡ‚Π° с транзакциями ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок Π² JDBC
βœ”οΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· JDBC

ΠšΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно:
Π’Π΅Π±ΠΈΠ½Π°Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ ΠΏΠΎ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌ ПО, стрСмящимся ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΡƒΡ€ΠΎΠΊΠ°:
Π’Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JDBC для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ смоТСтС ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ знания Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…

πŸ”— Бсылка Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ: https://vk.cc/cKRDRt

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘4❀2πŸ”₯2
Π£ класса Π΅ΡΡ‚ΡŒ Π΄Π²Π° конструктора с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ доступа, ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ @Autowired, ΠΊΠ°ΠΊΠΎΠΉ конструктор Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ для ΠΈΠ½ΠΆΠ΅ΠΊΡ‚Π° зависимостСй?
Anonymous Quiz
5%
Spring Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΠ±Π° конструктора
28%
Spring всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ конструктор с @Autowired, нСзависимо ΠΎΡ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°
22%
Если ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа конструктора с @Autowired - private, Spring выбросит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
32%
Spring Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ Ρ‚ΠΎΡ‚ конструктор, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа public, Π΄Π°ΠΆΠ΅ Ссли Π½Π΅Ρ‚ @Autowired
13%
Код Π½Π΅ скомпилируСтся
❀3πŸ‘2πŸ”₯2
Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ классов?

Π’ Java ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ динамичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° классов. Π•Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ – наслСдники абстрактного класса ClassLoader. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹-рСсурсы.

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° класса (Ρ‚ΠΎΡ‡Π½Π΅Π΅ любого ссылочного Ρ‚ΠΈΠΏΠ°) ΠΈ всСх Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠΎΠ² происходит автоматичСски ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. ΠŸΡ€ΠΈ этом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΡ‚ Π»ΠΎΠ°Π΄Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ» Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠ΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° всСх, Π΄Π°ΠΆΠ΅ встроСнных классов – лСнивая.

Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ класс ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° loadClass Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ имя класса.

Π’ URLClassLoader ΠΈ стандартных Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°Ρ… JVM источником класса слуТит .class-Ρ„Π°ΠΉΠ». Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ Π² своСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ источники: это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сСтСвой рСсурс, ΠΈΠ»ΠΈ класс ΠΌΠΎΠΆΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ΠΈΠ· javassist спСциализируСтся Π½Π° создании классов Π½Π° Π»Π΅Ρ‚Ρƒ.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ создаСтся экзСмпляр класса Class. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΠ΅ экзСмпляры хранятся Π½Π΅ Π² ΠΊΡƒΡ‡Π΅, Π° Π² permgen/metaspace. Class ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ΅Π½, ΠΊΠΎΠ³Π΄Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ²ΡˆΠΈΠΉ Π΅Π³ΠΎ ClassLoader стал мусором.

Java GuruπŸ€“ #java
πŸ‘10❀4πŸ”₯3πŸ₯±1
πŸ’°Π’ΠΎΠΏΡ€ΠΎΡ бСзопасности Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ становится всё Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ. Но ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Ρ‚ΡŒ инвСстиции Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ для бизнСса? Как ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π΅Ρ‘ Ρ„ΠΈΠ½Π°Π½ΡΠΎΠ²ΡƒΡŽ сторону?

πŸ—“ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π²Π΅Π±ΠΈΠ½Π°Ρ€ 23 апрСля Π² 20:00 мск даст ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° самыС Π²Π°ΠΆΠ½Ρ‹Π΅ вопросы. ΠœΡ‹ расскаТСм, ΠΊΠ°ΠΊ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π° долгосрочных потСрях, внСдряя эффСктивныС ΠΌΠ΅Ρ€Ρ‹ бСзопасности с самого Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

πŸ§‘β€πŸ’»Π‘ΠΏΠΈΠΊΠ΅Ρ€ Максим Π§Π°Ρ‰ΠΈΠ½ β€” Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности Π² Π“Πš Β«Π”Π΅Π²Π΅Π»ΠΎΠ½ΠΈΠΊΠ°Β».

Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, сколько стоит устранСниС уязвимостСй, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Β«shift leftΒ» влияСт Π½Π° ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Ρ€ бСзопасности. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒ руководство ΠΈΠ½Π²Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π½Π° всСх уровнях Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

πŸ‘‰ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌΡƒ ΡƒΡ€ΠΎΠΊΡƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ скидку Π½Π° большоС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Β«Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Π² DevSecOpsΒ»: https://vk.cc/cKT7zS

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯3❀2πŸ‘2
КакиС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ стандартныС Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ классов?

Π’ JVM встроСно ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Ρ€ΠΈ стандартных Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°:

πŸ”˜Bootstrap – встроСнная Π² JVM нативная рСализация, Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ². Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ стандартных классов java.*;
πŸ”˜Platform – ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ стандартных классов Java-Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ°. Π”ΠΎ Java 9 назывался Extension ΠΈ занимался Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ. ГарантируСтся, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΠ΄Π½Ρ‹ (Π½ΠΎ Π½Π΅ Ρ„Π°ΠΊΡ‚ Ρ‡Ρ‚ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ нСпосрСдствСнно ΠΈΠΌ) всС стандартныС классы Java SE ΠΈ JDK;
πŸ”˜System (Application) – Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ классы ΠΈΠ· classpath ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ прилоТСния;

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ класс, ClassLoader ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ. Если класс ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½, Ρ‚ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π΅ потрСбуСтся.

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ смысла этой ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ – Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ web-сСрвСра Apache Tomcat. ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ web-прилоТСния Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° своСм ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π”Π°ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ класс-singleton Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ собствСнный. БистСмныС классы ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ грузятся ΠΈΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· для сСрвСра.


Java GuruπŸ€“ #java
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘8❀4πŸ”₯4
πŸš€ Π‘Ρ‚Π°Ρ€Ρ‚ΡƒΠΉ Π² IT с Code Father: ΠžΠΏΠ»Π°Ρ‚Π° послС трудоустройства !Освой Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±Π΅Π· ΠΏΡ€Π΅Π΄ΠΎΠΏΠ»Π°Ρ‚Ρ‹ β€” Π½Π°Ρ‡Π½ΠΈ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ сСйчас, Π° ΠΏΠ»Π°Ρ‚ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС трудоустройства.
Π§Ρ‚ΠΎ вас ΠΆΠ΄Ρ‘Ρ‚?βœ… 4 этапа обучСния:
1.πŸ‘¨β€πŸ’» ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΠΌΠ΅Π½Ρ‚ΠΎΡ€Π°ΠΌΠΈ-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ:Π’Π²ΠΎΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΌΠ΅Π½Ρ‚ΠΎΡ€Ρ‹ β€” Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ уровня middle ΠΈ Π²Ρ‹ΡˆΠ΅. Они Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΈ Π΄Π°ΡŽΡ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° слабыС мСста ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ.
2. πŸ§©ΠŸΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎΠ΅ услоТнСниС Π·Π°Π΄Π°Ρ‡:Π’Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ с модуля java core Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ основы языка.ВСбя ΠΆΠ΄Ρ‘Ρ‚ большоС количСство Π·Π°Π΄Π°Ρ‡, Π½ΠΎ ΠΈΡ… ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ растёт ΠΏΠ»Π°Π²Π½ΠΎ. Благодаря этому Ρ‚Ρ‹ смоТСшь ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ со всСми заданиями ΠΈ Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΠ΅ΡˆΡŒ интСрСс ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ.
3.🌟 ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹:Π—Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ постоянно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ pet-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² основан Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ… ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΡ… Π±Π°Π½ΠΊΠ°Ρ…. ПослС Π΅Π³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ‹ Π±ΡƒΠ΄Π΅ΡˆΡŒ Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с самыми вострСбованными тСхнологиями Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅.
4.πŸ… Уникальная ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ собСсСдованиям:Главная Ρ†Π΅Π»ΡŒ обучСния β€” Ρ‚Π²ΠΎΡ‘ трудоустройство. Наша систСма ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚:
    πŸ“ŠΠΠ½Π°Π»ΠΈΠ· 200+ собСсСдований, ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… senior-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π·Π° послСдниС 2 Π³ΠΎΠ΄Π°.
    πŸ§ Π Π°Π·Π±ΠΎΡ€ самых частых тСорСтичСских вопросов, Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ live-ΠΊΠΎΠ΄ΠΈΠ½Π³Ρƒ ΠΈ code review.
    πŸ“Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΈ стратСгии прохоТдСния ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ.
    πŸ–‹ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² составлСнии Ρ€Π΅Π·ΡŽΠΌΠ΅.
βœ… Π‘Ρ‚Π΅ΠΊ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ:Java Core, Spring (Boot, MVC), Hibernate, Git, Maven, SQL, Kafka, Docker 
βœ… ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Π½Ρ‚ΠΎΡ€ΠΎΠ²ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ связь ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ, ΠΏΠΎΠΌΠΎΡ‰ΡŒ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Ρ€Π°Π·Π±ΠΎΡ€ ошибок, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ собСсСдованиям.
ΠŸΠΎΡ‡Π΅ΠΌΡƒ Code Father?
πŸ”₯ΠžΠΏΠ»Π°Ρ‚Π° послС трудоустройства:
ΠžΠΏΠ»Π°Ρ‚Π° 17% ΠΎΡ‚ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС трудоустройства .НСт скрытых ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ: Π£Ρ‡Ρ‘Π±Π° начинаСтся Π±Π΅Π· Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ.БообщСство: Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Ρ‡Π°Ρ‚ с ΠΊΡƒΡ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ выпускниками.
πŸ”₯ Волько Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ: Spring Boot, Kafka, Docker, Spring Data JPA β€” Π±Π΅Π· Π²ΠΎΠ΄Ρ‹ ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… инструмСнтов.πŸ’Ό
πŸ”₯ ΠœΠ΅Π½Ρ‚ΠΎΡ€ΡΡ‚Π²ΠΎ 1:1:ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ студСнт ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь ΠΎΡ‚ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².ПослС Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Ρ‚Ρ‹ ΡΡ‚Π°Π½Π΅ΡˆΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠΌ ΠΈ смоТСшь ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС Π² Π»ΡŽΠ±ΡƒΡŽ компанию. 🌍
πŸ‘‰ΠšΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ? Π£Π·Π½Π°Ρ‚ΡŒ подробности || Наш Telegram
Π”ΠΎ встрСчи Π½Π° курсС!

#Ρ€Π΅ΠΊΠ»Π°ΠΌΠ°
О Ρ€Π΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°Ρ‚Π΅Π»Π΅
erid: 2W5zFJmroeY
πŸ‘3πŸ”₯3❀2
Π§Π΅ΠΌ отличаСтся ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΡ‚ пСрСопрСдСлСния?

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ – соль ООП. ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° (overload) ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (override) – Π΄Π²Π° инструмСнта достиТСния ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠ³ΠΎ повСдСния Π² Java.

ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ рСализуСтся ad-hoc-ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Β«ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅Β» ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Π‘ тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния это просто Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, сигнатуры ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π΅ достаточно Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ списков ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Ad-hoc – Π½Π΅ совсСм настоящий ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π½Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π½Π½Π΅Π΅, ΠΈΠ»ΠΈ статичСскоС связываниС (early binding, static dispatch). Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ информация ΠΎ Ρ‚ΠΈΠΏΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π½Π΅ΠΉ Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ, ΠΈ происходит это Π΅Ρ‰Π΅ ΠΏΡ€ΠΈ компиляции.

Если Π² классС ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π΄Π²Π° ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ΄ ΠΎΠ±Π°, случится ошибка компиляции. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ компилятор Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° println с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ char[] ΠΈ со String, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ null ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Ρ‚Π΅ΠΌ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (override) Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΎ рСализация/ΠΏΠΎΠ΄ΠΌΠ΅Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса ΠΈΠ»ΠΈ интСрфСйса. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° достигаСтся ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° экзСмпляр хранится ΠΏΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΠΌ родитСля, Π½ΠΎ рСализация ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ спСцифичная для этого ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠ°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
List<String> list = new LinkedList<>();
list.add(β€œfooβ€œ);


Π—Π΄Π΅ΡΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ add вызываСтся ΠΎΠ±Ρ‰ΠΈΠΉ для всСх списков, Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ элСмСнт связного списка.

Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° происходит Π² послСдний ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ называСтся ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΈΠ»ΠΈ динамичСскоС связываниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (late binding, dynamic dispatch).

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ нСпосрСдствСнноС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ подстановки Лисков (LSP): Π² Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ для Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΌ ΠΎΡ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ.

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ принято ΡΠ½Π°Π±ΠΆΠ°Ρ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ
@Override. Π•Π΅ отсутствиС допускаСтся, Π½ΠΎ компиляция Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с Ρ‚Π°ΠΊΠΎΠΉ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡƒΠ·ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ выбрасываСмых ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа Π½Π° ΠΌΠ΅Π½Π΅Π΅ строгий.

БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ нСльзя ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ.


Java GuruπŸ€“ #java
πŸ‘14❀6πŸ”₯4
КакоС рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ соотвСтствуСт строкС, содСрТащСй Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉ Π΄Π»ΠΈΠ½Ρƒ ΠΎΡ‚ 3 Π΄ΠΎ 5 символов?
Anonymous Quiz
51%
^[0-9]{3,5}$
15%
^[\d][3,5]$
16%
\d(3,5}
10%
*[0-9]{3.5}
9%
\d{3,5}/
πŸ”₯11πŸ‘5❀4
Когда Class.getClassLoader Π²Π΅Ρ€Π½Π΅Ρ‚ null?

Π­Ρ‚ΠΎΡ‚ вопрос ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π΅ Ρ‚Π΅ΠΌΡ‹. ΠŸΠ΅Ρ€Π²Π°Ρ – класс Class Π² Ρ†Π΅Π»ΠΎΠΌ. ЭкзСмпляры Class<T> ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ runtime-описаниС Ρ‚ΠΈΠΏΠΎΠ². Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… этого описания пСрСчислСния ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ классами, Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ – интСрфСйсами. Π’ основном приходится Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с мСтаклассами ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с рСфлСксиСй ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°ΠΌΠΈ.

По большСй части эти экзСмпляры класса Class состоят ΠΈΠ· содСрТимого .class-Ρ„Π°ΠΉΠ»Π°. Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ класслоадСра. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΈΡ… хранСния Π² памяти ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π²
ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ постС.

Вторая Ρ‚Π΅ΠΌΠ° для Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π° здСсь – особСнности класса Class для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², массивов ΠΈ void. Для получСния Ρ‚Π°ΠΊΠΈΡ… экзСмпляров ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΡ‚ ΠΆΠ΅ синтаксис, Ρ‡Ρ‚ΠΎ ΠΈ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… классов: void.class, int.class, float[][].class. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ foo.class – это Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ‡Π»Π΅Π½Ρƒ, Π° Π»ΠΈΡ‚Π΅Ρ€Π°Π» класса.

Для void Ρ‚ΠΈΠΏΠΎΠΌ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ T выступаСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ нСинстанциируСмый Ρ‚ΠΈΠΏ java.lang.Void. Π’ΠΈΠΏ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π° – ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ класс-Π²Ρ€Π°ΠΏΠΏΠ΅Ρ€. Π₯отя для самого класса-Π²Ρ€Π°ΠΏΠΏΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ экзСмпляр Class. Π’ΠΎ Π΅ΡΡ‚ΡŒ int.class != Integer.class.

ΠœΠ΅Ρ‚ΠΎΠ΄ getClassLoader ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ класса ΠΈΠ»ΠΈ интСрфСйса Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ». null ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ для Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ bootstrap-класслоадСром Ρ‚ΠΈΠΏΠ°. Для массива возвращаСтся Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ для Ρ‚ΠΈΠΏΠ° Π΅Π³ΠΎ элСмСнтов. Для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² ΠΈ void Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ всСгда Π±ΡƒΠ΄Π΅Ρ‚ null.


Java GuruπŸ€“ #java
πŸ”₯7❀2
Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, являСтся Π»ΠΈ A ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠΎΠΌ B?

Π’ Java доступны Ρ‚Ρ€ΠΈ способа ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ совмСстимости Ρ‚ΠΈΠΏΠΎΠ². Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΎΠ½ΠΈ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для Ρ€Π°Π·Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’ порядкС убывания быстродСйствия:

instanceof – Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, самый быстрый ΠΈ самый ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ. Если Π΅ΡΡ‚ΡŒ экзСмпляр A ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ B явно, Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π°Π΄ΠΎ Π΅Π³ΠΎ. Если A (Ρ‚ΠΎΡ‡Π½Π΅Π΅ Ρ‚ΠΈΠΏ хранящСй экзСмпляр A ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ) ΠΈ B Π½Π΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ наслСдования – экзСмпляр Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠΎΠΌ B ΠΈ компиляция ΡƒΠΏΠ°Π΄Π΅Ρ‚ с ошибкой inconvertible types.

Class::isInstance – ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° A. Π•Π³ΠΎ стоит Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° экзСмпляр A Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ, Π½ΠΎ B – нСизвСстный Π½Π° этапС компиляции Ρ‚ΠΈΠΏ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… A a ΠΈ Class bClass, ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ bClass.isInstance(a).

Class::isAssignableFrom – ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Class<A>. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ остаСтся, Ссли экзСмпляра A Π½Π΅Ρ‚. bClass.isAssignableFrom(aClass).

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ способ – имСя экзСмпляр Ρ‚ΠΈΠΏΠ° A привСсти Π΅Π³ΠΎ ΠΊ B. Если Ρ‚ΠΈΠΏΡ‹ Π±Ρ‹Π»ΠΈ нСсовмСстимы, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ выбросит ClassCastException. Π­Ρ‚ΠΎ Π²ΠΎ всСх смыслах ΠΏΠ»ΠΎΡ…ΠΎΠΉ способ, ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ… Π½Π΅Ρ‚ оправдания. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ аргумСнтация описана Π² Effective Java Item 57.


Java GuruπŸ€“ #java
πŸ”₯8πŸ‘4❀2
Π§Ρ‚ΠΎ вСрнётся, Ссли ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ GET-запрос Π½Π° /test?
πŸ‘5πŸ”₯2
πŸ”₯10πŸ‘6
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Reflection ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Reflection, рСфлСксия – это срСдства манипуляции Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π° основС знания ΠΎ структурС классов этих Π΄Π°Π½Π½Ρ‹Ρ…, инструмСнты мСтапрограммирования.

Класс Class<T> ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΌΠΈΡ€ Ρ€Π΅Ρ„Π»Π΅ΠΊΡˆΠ΅Π½Π°. Π•Π³ΠΎ экзСмпляры ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ саму ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ содСрТимом класса ΠΈ основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌ. ВсС классы относящиСся Java Reflection находятся Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… java.lang ΠΈ java.lang.reflect.

ЭкзСмпляр класса Class ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ трСмя способами:
πŸ”˜Π›ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ .class;
πŸ”˜Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΌ Ρ„Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Class.forName();
πŸ”˜ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ getClass() экзСмпляров класса.

ИспользованиС Reflection API ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ΠΈ нСбСзопасноС. Оно позволяСт Π»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ состояний экзСмпляра, Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ, ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ поля.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡŽ СстСствСнно Π² тСстовом ΠΊΠΎΠ΄Π΅, Π² инструмСнтах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π² Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ… (особСнно Π² связкС с runtime-аннотациями). Π Π΅Ρ„Π»Π΅ΠΊΡˆΠ½ Π² ΠΎΡ€Π΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ бизнСс-ΠΊΠΎΠ΄Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… проСктирования.

НСрСдко Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ просят ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ€Π΅Ρ„Π»Π΅ΠΊΡˆΠ½Π°. Один ΠΈΠ· самых Π±Π»ΠΈΠ·ΠΊΠΈΡ… для backend-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² – инициализация классов-ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π² Spring Framework. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅Ρ„Π»Π΅ΠΊΡˆΠ½Π° сканируСт внутрСнности Ρ‚Π°ΠΊΠΈΡ… классов. Поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ аннотациями, Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ объявлСния элСмСнтов экосистСмы Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°.


Java GuruπŸ€“ #java
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘11❀5πŸ”₯5
Π’ Ρ‡Ρ‘ΠΌ отличия интСрфСйса ΠΎΡ‚ абстрактного класса?

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ – это сСмантика. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ появились Π΅Ρ‰Π΅ Π΄ΠΎ Java, ΠΊΠ°ΠΊ ваТная концСпция ООП. Бмысл интСрфСйса – Π½Π΅ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, описаниС свойства. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Ссли ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° сСгрСгации интСрфСйсов, это описаниС СдинствСнного аспСкта повСдСния.

Класс, Π΄Π°ΠΆΠ΅ абстрактный – это комбинация всСх свойств ΠΈ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ сущности Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ (собствСнно, класса).

ΠžΡ‚ΡΡŽΠ΄Π° Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ Π΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ мноТСствСнного наслСдования для интСрфСйсов. ΠžΠΏΡ‹Ρ‚ Ρ‚Π°ΠΊΠΈΡ… языков ΠΊΠ°ΠΊ C++ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ мноТСствСнноС наслСдованиС классов Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ (см. ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€ΠΎΠΌΠ±ΠΎΠ²ΠΈΠ΄Π½ΠΎΠ³ΠΎ наслСдования). По Ρ„Π°ΠΊΡ‚Ρƒ ΠΆΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ всСго лишь ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ Π½Π΅ относится ΠΊ ООП ΠΈ рСализуСтся Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках «интСрфСйсами с нСзависимым состояниСм» – примСсями.
Π’ Java интСрфСйс Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ абстрактного класса Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ состояния. РСализация повСдСния ΠΆΠ΅ допустима Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π΄Π²ΡƒΡ… случаях: для статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈ default для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ…. БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ всСго класса, Π° Π½Π΅ экзСмпляров. ДСфолтная рСализация, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ Ρ…Π°ΠΊ для сохранСния совмСстимости.

Π’ интСрфСйсах, ΠΊΠ°ΠΊ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… описаниях, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ смысла ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹ Π½Π΅ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹. ΠžΡ‚ΡΡŽΠ΄Π° синтаксичСскоС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅: ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ public, ΠΊΠ°ΠΊ ΠΈ abstract для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ»ΠΈ static для ΠΏΠΎΠ»Π΅ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ. Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, нСсовмСстимыС с abstract: final, synchronized ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅.

На ΡƒΡ€ΠΎΠ²Π½Π΅ скомпилированного Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ нСбольшиС различия: интСрфСйс помСчаСтся Ρ„Π»Π°Π³ΠΎΠΌ ACC_INTERFACE Π° для класса гСнСрируСтся конструктор ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

И Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ нСбольшоС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ с ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ, ΠΈ ΠΈΠ½ΡΡ‚Π°Π½Ρ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Для абстрактного класса Π΄Π°ΠΆΠ΅ с СдинствСнным ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ΅ Π½Π΅ сработаСт.


Java GuruπŸ€“ #java
πŸ‘16πŸ”₯7❀3
Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ запуска ΠΊΠΎΠ΄Π°?
πŸ‘5πŸ”₯2
Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ запуска ΠΊΠΎΠ΄Π°?
Anonymous Quiz
13%
Ошибка компиляции
20%
Executing MyService
8%
BeanNotFoundException
54%
NoUniqueBeanDefinitionException
5%
MyService
πŸ‘6πŸ”₯2