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

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

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

ΠœΡ‹ Π½Π° Π±ΠΈΡ€ΠΆΠ΅: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ свой ΠΌΠΈΠ½ΠΈ-Google? πŸš€
πŸ—“ 22 октября, 20:00 ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ OTUS «Мини-поисковик своими Ρ€ΡƒΠΊΠ°ΠΌΠΈΒ». На этом Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅ Π²Ρ‹ создадитС поисковик с нуля β€” Π±Π΅Π· Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΌΠ°Π³ΠΈΠΈ. Волько Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ ΠΊΠΎΠ΄.

Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ, ΠΊΠ°ΠΊ:
β€’ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ КМП ΠΈ прСфиксноС Π΄Π΅Ρ€Π΅Π²ΠΎ;
β€’ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ подсчёт Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ;
β€’ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ поиск ΠΏΠΎΠ΄ большиС тСксты;
β€’ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ всё это Π² малСнький, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΎΡ„Π»Π°ΠΉΠ½-поисковик.

ПослС Π²Π΅Π±ΠΈΠ½Π°Ρ€Π° Π²Ρ‹ смоТСтС ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ:
β€” ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ индСкс слов ΠΈ быстро ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ Π½Π΅ΠΌΡƒ;
β€” ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ статистику запросов;
β€” ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ устроСны поисковики.

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΏΡ€Π΅Π΄Π΄Π²Π΅Ρ€ΠΈΠ΅ старта курса «Алгоритмы ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ…Β». ВсС участники ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ скидку Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ 22 октября Π² 20:00:

https://vk.cc/cQpVAw

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
πŸ‘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. Π•Π΅ отсутствиС допускаСтся, Π½ΠΎ компиляция Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с Ρ‚Π°ΠΊΠΎΠΉ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС.

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

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


ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ Π½Π° наш ΠΊΠ°Π½Π°Π» Π² Max πŸŸͺ
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘11πŸ”₯6❀2
πŸ”₯ БоврСмСнная оркСстрация Kotlin-прилоТСниями

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

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

Π£ΠΆΠ΅ ΠΏΡ€ΠΎΡˆΠ»Π° эпоха ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°, ΠΊΠΎΠ³Π΄Π° Ρ†Π΅Π»Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ занимались Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±ΡŠΡΡ‚Π½ΠΎΠ³ΠΎ прилоТСния. БСйчас любая информационная систСма насыщСна Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сСрвисами, Π° микросСрвисами ΡƒΠΆΠ΅ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΡƒΠ΄ΠΈΠ²ΠΈΡˆΡŒ.
ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ собСсСдований стал вопрос ΠΏΡ€ΠΎ Saga, Ρ…ΠΎΡ€Π΅ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ ΠΈ ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ.
И ΠΈΠΌΠ΅Π½Π½ΠΎ эту Ρ‚Π΅ΠΌΡƒ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π° Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅ Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ Kotlin-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅:
- ΠžΠ±ΡΡƒΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ оркСстраторы Ρ‚ΠΈΠΏΠ° Airflow ΠΈΠ»ΠΈ Camunda, Ρ‚Π°ΠΊ Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ².
- На практичСской части Π²Π΅Π±ΠΈΠ½Π°Ρ€Π° ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, управляСмоС оркСстратором.

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

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

Π‘Ρ€Π΅Π΄ΠΈ интСрфСйсов выдСляСтся особая Π³Ρ€ΡƒΠΏΠΏΠ°, которая Π½Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ интСрфСйса – Serializable. Π’Π°ΠΊΠΈΠ΅ интСрфСйсы Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ классу Π½Π΅ΠΊΡƒΡŽ сСмантику, которая ΠΏΠΎΠ·ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСфлСксии (ΠΈ instanceof), Π»ΠΈΠ±ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, Π° ΠΊΠ°ΠΊ информация для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π½Ρ‹Π΅ интСрфСйсы. ΠœΠ°Ρ€ΠΊΠ΅Ρ€Π½Ρ‹ΠΉ интСрфСйс прСдставляСт ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ класса.

Начиная с Java 1.5 Π² языкС появился Π½ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ΄ Ρ‚ΠΈΠΏΠΎΠ² – Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ. Они Π±Π΅Ρ€ΡƒΡ‚ Π½Π° сСбя ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ возмоТности ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π½ΠΎΠ³ΠΎ интСрфСйса:
1. МоТно ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ классу ΠΈΠ»ΠΈ интСрфСйсу, Π½ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊ Ρ‡Π΅ΠΌΡƒ ΡƒΠ³ΠΎΠ΄Π½ΠΎ: ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ, ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ, ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. ΠŸΠΎΠ»Π½Ρ‹ΠΉ список прСдставлСн Π² пСрСчислСнии ElementType;
2. Аннотация ΠΌΠΎΠΆΠ΅Ρ‚ нСсти Π΄Π°Π½Π½Ρ‹Π΅ Π² своих элСмСнтах
3. Аннотация ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² исходникС, Π½Π΅ ΠΏΠΎΠΏΠ°Π² Π² Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ вовсС. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ΡΡ Π΅Π΅ RetentionPolicy;
4. МоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ Π½Π΅ наслСдуСмой, просто Π½Π΅ помСчая Π΅Π΅
@Inherited;
5. И ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, синтаксис. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Π°Ρ аннотация с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ взгляда отличаСтся ΠΎΡ‚ настоящих интСрфСйсов.

Joshua Block Π² Π³Π»Π°Π²Π΅ 37 Effective Java выдСляСт Π΄Π²Π° прСимущСства ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π½Ρ‹Ρ… интСрфСйсов ΠΏΠ΅Ρ€Π΅Π΄ аннотациями Π½Π° этапС компиляции:
1. МоТно Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ использованиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π½Ρ‹ΠΉ интСрфСйс – это Π΅Ρ‰Π΅ ΠΈ Ρ‚ΠΈΠΏ;
2. МоТно ΡΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ, сдСлав интСрфСйс ΠΈΡ… наслСдником.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ вопросу, ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово
@interface ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ, interface – интСрфСйс.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ компиляции Π² .class-Ρ„Π°ΠΉΠ»Π΅ аннотация прСвращаСтся Π² интСрфСйс-наслСдник java.lang.annotation.Annotation, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ Ρ„Π»Π°Π³ΠΎΠΌ ACC_ANNOTATION. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π­Ρ‚ΠΈΠΌ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ синтаксис объявлСния. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½Ρ‹Π΅ для Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ описаны Π² JVMS 4.7.16-4.7.22.

К слову, конструкции Π²ΠΈΠ΄Π°
@something Π² javadoc Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ тэгами. Они выглядят ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π½ΠΎ тСхничСски Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ с Π½ΠΈΠΌΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ.

ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ Π½Π° наш ΠΊΠ°Π½Π°Π» Π² Max πŸŸͺ
Please open Telegram to view this post
VIEW IN TELEGRAM
❀6πŸ”₯3πŸ‘2
πŸ‘4πŸ”₯2
Когда 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.


ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ Π½Π° наш ΠΊΠ°Π½Π°Π» Π² Max πŸŸͺ
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘5πŸ”₯4❀3
πŸ—ΠšΡƒΡ€Ρ β€œSoftware Architect” ΠΎΡ‚ OTUS β€” старт Π½Π°Π±ΠΎΡ€Π° Π² Π³Ρ€ΡƒΠΏΠΏΡƒ обучСния!
Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ отказоустойчивыС ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ систСмы β€” этот курс для вас!

ΠŸΠΎΡ‡Π΅ΠΌΡƒ стоит ΠΏΠΎΠΉΡ‚ΠΈ:

- 100% ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…
- ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΠΈΠ±ΠΊΠΈΡ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€
- ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, Big Data
- Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹: CQRS, Event Sourcing ΠΈ Π΄Ρ€.

πŸ’‘ ΠšΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚:

- Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ Π²Ρ‹ΠΉΡ‚ΠΈ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ
- АрхитСкторам, ΡƒΠ³Π»ΡƒΠ±Π»ΡΡŽΡ‰ΠΈΠΌ экспСртизу
- Π’ΠΈΠΌΠ»ΠΈΠ΄Π°ΠΌ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°ΠΌ

βœ…ΠŸΠΎΡΠ»Π΅ курса Π²Ρ‹ смоТСтС:

- ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹
- ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС сСрвисов
- ΠŸΠΎΠ²Ρ‹ΡˆΠ°Ρ‚ΡŒ качСство ΠΈ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ систСм

πŸ‘‰ ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π²ΡΡ‚ΡƒΠΏΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ тСстированиС: https://vk.cc/cQw8lY

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
❀3πŸ‘2πŸ”₯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.


ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ Π½Π° наш ΠΊΠ°Π½Π°Π» Π² Max πŸŸͺ
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘6πŸ”₯3
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Reflection ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

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

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

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

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

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

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


ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ Π½Π° наш ΠΊΠ°Π½Π°Π» Π² Max πŸŸͺ
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯7❀5πŸ‘3
Какой ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запуска JVM ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для контроля Ρ€Π°Π·ΠΌΠ΅Ρ€Π° стСка ΠΏΠΎΡ‚ΠΎΠΊΠ°?
Anonymous Quiz
45%
-Xss
5%
-X5
8%
-Xmx
6%
-Xmx
36%
-Xms
πŸ‘5πŸ”₯2
ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ дСньги Π² IT?

ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… IT-спСциалистов ΠΏΡ€ΠΎΠΉΡ‚ΠΈ нСбольшой опрос ΠΏΡ€ΠΎ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈ Π±Π΅Π½Π΅Ρ„ΠΈΡ‚Ρ‹ Π² тСхнологичСских компаниях. Π­Ρ‚ΠΎ Π·Π°ΠΉΠΌΡ‘Ρ‚ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 7 ΠΌΠΈΠ½ΡƒΡ‚ β€” Π° вашС ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΡƒ российскому Ρ€Π°Π±ΠΎΡ‚ΠΎΠ΄Π°Ρ‚Π΅Π»ΡŽ Π΄Π΅Π»Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ„Π΅Ρ€Ρ‹.

ΠŸΡ€ΠΎΠΉΡ‚ΠΈ опрос ΠΌΠΎΠΆΠ½ΠΎ здСсь
πŸ‘2πŸ”₯2
Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Serializable ΠΈ Externalizable?

ΠŸΡ€ΠΈ записи Serializable класса вСсь ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ сСриализациСй достаСтся JVM. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ опрСдСлСния ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΡΡ‚ΠΎΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ части. ΠœΠ΅Ρ‚ΠΎΠ΄ readObject ΠΏΡ€ΠΈ этом ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ начинаСтся с Π²Ρ‹Π·ΠΎΠ²Π° стандартной части сСриализации – ObjectInputStream.defaultReadObject().

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Externalizable Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ Serializable ΠΈ добавляСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ записи ΠΈ чтСния writeExternal ΠΈ readExternal. Π’Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊΠΈ-Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² Π½ΠΈΡ… прСдставлСны Π±ΠΎΠ»Π΅Π΅ абстрактно Ρ‡Π΅ΠΌ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… – интСрфСйсами ObjectInput ΠΈ ObjectOutput.

Π­Ρ‚ΠΎΡ‚ интСрфСйс позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ свой ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сСриализации, стандартно Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ класса. Никакой автоматичСской Ρ€Π°Π±ΠΎΡ‚Ρ‹ с классом-Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ прСдусмотрСно. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ readObject ΠΈ writeObject ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово transient эффСкта Π½Π° Externalizable Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚.

Externalizable ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Serializable дСсСрализуСтся Π½Π΅ Π² ΠΎΠ±Ρ…ΠΎΠ΄ конструктора, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ конструктор Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².


ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ Π½Π° наш ΠΊΠ°Π½Π°Π» Π² Max πŸŸͺ
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯4πŸ‘3
πŸ”₯ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ Π½Π° бСсплатный Π²Π΅Π±ΠΈΠ½Π°Ρ€ курса β€œSoftware Architect”: «Бпособы раздСлСния микросСрвисов»

Когда: 29 октября, 20:00 (мск)

О Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅

Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ микросСрвисныС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. На ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ курса Software Architect Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ микросСрвисы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ систСм.

Π§Ρ‚ΠΎ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅:

- ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ DDD для Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ микросСрвисов.
- Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ сСрвисов ΠΏΠΎ бизнСс-функциям ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌ.
- ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ кСйсы для гибкости Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

Π§Ρ‚ΠΎ освоитС:

- ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ эффСктивной Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.
- ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€.
- ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ инструмСнты для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

πŸ‘‰ Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ: https://vk.cc/cQBrCS

ЗанятиС ΠΏΡ€ΠΈΡƒΡ€ΠΎΡ‡Π΅Π½ΠΎ ΠΊ старту курса "Software Architect", ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ†ΠΈΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ отказоустойчивых, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм.

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
πŸ‘2πŸ”₯2❀1
Π§Ρ‚ΠΎ Ссли ΠΎΠ±Π° Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Ρ… интСрфСйса ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄?

Если объявлСниС ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ
– Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, класс-рСализация Π΄ΠΎΠ»ΠΆΠ΅Π½ просто ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄.

Когда Ρƒ ΠΎΠ±ΠΎΠΈΡ… интСрфСйсов ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ сигнатурой, Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ – всё зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ эти Ρ‚ΠΈΠΏΡ‹.

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (override) Π΅Ρ‰Π΅ с Java 5 ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π² наслСдникС Ρ‚ΠΈΠΏ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ наслСдником: super ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Number,
@Override ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Integer.

Если Ρ‚ΠΈΠΏΡ‹ Π½Π΅ связаны ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ΠΌ наслСдования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ String ΠΈ Long – Ρ‚Π°ΠΊΠΎΠΉ класс Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ковариантности Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π½Π΅Ρ‚. Π”Π°ΠΆΠ΅ Ссли Ρ‚ΠΈΠΏΡ‹ совмСстимы ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ присваивания: intβ†’long, intβ†’Integer. Π’ любом ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… случаСв Π±ΡƒΠ΄Π΅Ρ‚ ошибка ΠΎ нСсовмСстимости Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² точности.

Если Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² части throws, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. ΠŸΡ€Π°Π²ΠΈΠ»Π° здСсь Ρ‚Π΅ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² – Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ лишь Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚, Π° Π΄Π°ΠΆΠ΅ для Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΈ наслСдником ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ всСгда Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΠΎΠΈΠΌ – отсутствиС выбрасываСмых ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π²ΠΎΠΎΠ±Ρ‰Π΅.


ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ Π½Π° наш ΠΊΠ°Π½Π°Π» Π² Max πŸŸͺ
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘13πŸ”₯7❀3
πŸ”₯ ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΡ ΠΊ сообщСству IT-мСроприятий!

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство интСрСсных IT-ΠΈΠ²Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ всСй России β€” Π½Π΅ упусти шанс ΡΡ‚Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ этого сообщСства!

✨ Π“Π΄Π΅ ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΠΎ всСх мСроприятиях Π·Π°Ρ€Π°Π½Π΅Π΅?
ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ Π½Π° ΠΊΠ°Π½Π°Π» IT мСроприятия | IT Events ΠΈ Π±ΡƒΠ΄ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ срСди Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΡƒΠ·Π½Π°Π΅Ρ‚ ΠΎ Π½ΠΎΠ²Ρ‹Ρ… событиях.

πŸ“Œ Π§Ρ‚ΠΎ ΠΆΠ΄Ρ‘Ρ‚ тСбя Π½Π° ΠΊΠ°Π½Π°Π»Π΅?

- Π•ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅ анонсы мСроприятий ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… ΡƒΠ³ΠΎΠ»ΠΊΠΎΠ² нашСй ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ страны.
- Π Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊ: Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄, бэкСнд, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, big data, OSINT, DevOps ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.
- Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° любой вкус: ΠΌΠΈΡ‚Π°ΠΏΡ‹, мастСр-классы, ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ, Π²Π΅Π±ΠΈΠ½Π°Ρ€Ρ‹, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ Π΄Π°ΠΆΠ΅ отраслСвыС сорСвнования.

πŸ—£ ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ этот ΠΊΠ°Π½Π°Π»?
Π—Π΄Π΅ΡΡŒ собрано всё самоС Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΈ интСрСсноС для профСссионалов сфСры IT, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ энтузиастов Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡˆΡŒ!

πŸ›  Π₯ΠΎΡ‡Π΅ΡˆΡŒ Π±Ρ‹Ρ‚ΡŒ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ событий?
Π’ΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈ Π½Π° ΠΊΠ°Π½Π°Π» IT мСроприятия | IT Events ΠΈ подписывайся прямо сСйчас!
❀2πŸ‘2πŸ”₯2
Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ поля?

Π‘Ρ‚ΠΎΠΈΡ‚ сразу ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, это ΠΎΡ‡Π΅Π½ΡŒ плохая ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°. Π’Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π³Ρ€ΡƒΠ±ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ сокрытия Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π»ΠΎΠΌΠ°Π΅Ρ‚ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Для этого Ρ‚Ρ€ΡŽΠΊΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ±Π΅Π³Π½ΡƒΡ‚ΡŒ ΠΊ использованию Reflection API.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ дСскриптор поля – экзСмпляр класса Field. Π£ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° мСтакласса Class<X> ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅Π³ΠΎ нас класса Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ getDeclaredField(). ΠŸΡ€ΠΎΡΡ‚ΠΎ getField() Π½Π΅ сработаСт, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ полями. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ пСрСдаСтся строка с ΠΈΠΌΠ΅Π½Π΅ΠΌ поля.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ экзСмпляра Field ΡƒΠΆΠ΅ достаточно для доступа ΠΊ измСняСмым ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌ полям. ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ трСбуСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ доступным, Π²Ρ‹Π·Π²Π°Π² setAccessible(true).

Π‘Π°ΠΌ доступ осущСствляСтся ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ get*() ΠΈ set*(). Π’Π°ΠΊ ΠΊΠ°ΠΊ Field прСдставляСт дСскриптор поля класса, Π±Π΅Π· привязки ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ экзСмпляру класса, экзСмпляр пСрСдаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа. Для статичСского поля пСрСдаСтся null.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ±ΠΎΡ€ΠΎΡ‚ΡŒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ поля, Π½ΡƒΠΆΠ½ΠΎ ΡΠ½ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ final. ВсС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ поля хранятся Π² ΠΏΠΎΠ»Π΅ modifiers дСскриптора. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅Ρ„Π»Π΅ΠΊΡˆΠ΅Π½Π° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ доступным ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ ΡƒΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Field.

ПолС modifiers Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ маски. Для измСнСния придСтся ΠΏΡ€ΠΈΠ±Π΅Π³Π½ΡƒΡ‚ΡŒ ΠΊ Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ установки значСния 42 Π² ΠΏΠΎΠ»Π΅ myField ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° myObject выглядит Ρ‚Π°ΠΊ:

Field field = myObject.class.getDeclaredField( "myField" );
field.setAccessible( true );
Field modifiersField = Field.class.getDeclaredField( "modifiers" );
modifiersField.setAccessible( true );
modifiersField.setInt( field, field.getModifiers() & ~Modifier.FINAL );
field.setInt(myObject, 42);


ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ Π½Π° наш ΠΊΠ°Π½Π°Π» Π² Max πŸŸͺ
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯9πŸ‘5❀4
Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ стримы?

ΠŸΠ°ΠΊΠ΅Ρ‚ java.util.stream – это срСдства ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ стилС. Они Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ (ΠΊΡ€ΠΎΠΌΠ΅ названия) с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ примСнСния – конвСртация, ΠΏΠ΅Ρ€Π΅ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°, ΠΈ агрСгация Π΄Π°Π½Π½Ρ‹Ρ….

Π’Ρ€ΠΈ основных понятия Java Stream API – источник Π΄Π°Π½Π½Ρ‹Ρ…, промСТуточная (intermediate), ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ (terminal) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ»ΠΈ динамичСский Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ бСсконСчный. Π‘Π°ΠΌ источник Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ модифицируСтся ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ опСрациями.

ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ стрим. На ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ опСрация «потрСбляСт» ΠΏΠΎΡ‚ΠΎΠΊ. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π°, Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ взятым стримом. Π‘Ρ‚Ρ€ΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π»Π΅Π½ΠΈΠ²ΠΎ – вся Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π΅ Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования стримов – map-reduce. Map – промСТуточная опСрация, reduce – Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ характСристик ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свойства – элСмСнты пСрСчислСния StreamOpFlag:
β€’ SORTED – ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ элСмСнты;
β€’ ORDERED – ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ порядок ΠΎΠ±Ρ…ΠΎΠ΄Π°;
β€’ DISTINCT – содСрТит ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты, Π±Π΅Π· Π΄ΡƒΠ±Π»Π΅ΠΉ;
β€’ SIZED – ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€;
β€’ SHORT_CIRCUIT – опСрация, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΌΡƒ Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΡŽ.


ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ Π½Π° наш ΠΊΠ°Π½Π°Π» Π² Max πŸŸͺ
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘6πŸ”₯3❀2
πŸ‘©β€πŸ’» Java Π² Kubernetes Π·Π° 40 ΠΌΠΈΠ½ΡƒΡ‚: ΠΊΠ°ΠΊ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Minikube

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

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

Minikube β€” Π»ΠΈΡ‡Π½Ρ‹ΠΉ Kubernetes для тСстов. ΠΠ°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ Java-прилоТСния β€” Π±Π°Π·Π° для DevOps, CI/CD ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½Π°.

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅:

βœ”οΈ ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Java-прилоТСния ΠΊ дСплою (JAR β†’ Docker image).
βœ”οΈΠ£ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Minikube ΠΈ настройка локального кластСра.
βœ”οΈΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ манифСстов: Deployment, Service, ConfigMap.
βœ”οΈΠ—Π°ΠΏΡƒΡΠΊ прилоТСния ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Π΅Π±ΠΈΠ½Π°Ρ€Π° Π²Ρ‹:
βœ”οΈ Π‘ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Minikube, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ манифСсты ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Kubernetes Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌΒ».

ΠšΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно:
Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Kubernetes ΠΈ DevOps-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ, Π²Ρ‹ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ CI/CD ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ.

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

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘2πŸ”₯2❀1
Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΊΠΎΠ΄Π°?
πŸ”₯4πŸ‘2
Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΊΠΎΠ΄Π°?
Anonymous Quiz
11%
Caught: Exception
26%
Process Caught: Exception
6%
Close
6%
Close Caught: Exception
51%
Process Close Caught: Exception
πŸ”₯5πŸ€”3πŸ‘2