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

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

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

ΠœΡ‹ Π½Π° Π±ΠΈΡ€ΠΆΠ΅: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
⚑️ Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄ΠΎΠΌ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ!

На занятии Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄ классов ΠΈ для Ρ‡Π΅Π³ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ. ΠΠ°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для измСнСния Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… классов Π² runtime. Π­Ρ‚ΠΎ Π·Π½Π°Π½ΠΈΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ слоТныС Π·Π°Π΄Π°Ρ‡ΠΈ.

Π’Π΅Π±ΠΈΠ½Π°Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с вопросами ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ВстрСчаСмся 1 августа Π² 20:00 мск.

Π‘ΠΏΠΈΠΊΠ΅Ρ€ β€” Tech Lead Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΡ… российских Π±Π°Π½ΠΊΠΎΠ² ΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ тСхничСских Π½Π°ΡƒΠΊ.

πŸ‘‰ Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ прямо сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ бСсплатноС занятиС: https://vk.cc/cyBaHQ

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

ВсС интСрфСйсы Collections Framework ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ своим рСализациям ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π»ΠΈ null-значСния. Если рСализация Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ null, ΠΎΠ½Π° выбрасываСт NullPointerException ΠΈΠ»ΠΈ ClassCastException.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ списков (LinkedList, ArrayList) ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ null Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ (Queue ΠΈ Deque) Π½Π΅ хранят null – возвращая ΠΈΠ· Ρ‡ΠΈΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° null ΠΎΠ½ΠΈ ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎ пустотС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Unmodifiable Maps Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ null-ΠΎΠ² совсСм. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ измСняСмыС ΠΌΠ°ΠΏΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ трудности со значСниями null. А Π²ΠΎΡ‚ с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π΄Π΅Π»ΠΎ обстоит интСрСснСС.

HashMap Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ hash-сумму ΠΎΡ‚ null. Но вмСсто этого для Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±Π°ΠΊΠ΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ 0.

Иногда этот вопрос даСтся ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‡Π° с ΠΏΠΎΠ΄Π²ΠΎΡ…ΠΎΠΌ ΠΏΡ€ΠΎ TreeMap. Nullability Π΅Ρ‘ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ зависит ΠΎΡ‚ готовности ΠΊ этому ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€Π°. ΠΠ°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ порядок (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для Comparable ΠΊΠ»ΡŽΡ‡Π΅ΠΉ) Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ null. РаньшС Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±Ρ‹Π» Π±Π°Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволял ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ null Π² ΠΊΠΎΡ€Π΅Π½ΡŒ Π΄Π΅Ρ€Π΅Π²Π° Π±Π΅Π· выброса ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Set-ΠΎΠ² Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ для ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Π² основС ΠΈΡ… Map-ΠΎΠ².
πŸ‘11πŸ”₯3πŸ₯°3
πŸ‘ ВСст ΠΏΠΎ Java

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒ насколько Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ‚Ρ‹ знаСшь Java ΠΈ Π³ΠΎΡ‚ΠΎΠ² ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Spring!

ΠžΡ‚Π²Π΅Ρ‚ΠΈΡˆΡŒ β€” ΠΏΡ€ΠΎΠΉΠ΄Π΅ΡˆΡŒ Π½Π° ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ курс "Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° Spring Framework" ΠΎΡ‚ OTUS ΠΏΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅Π½Π΅.

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

⏰ ВрСмя прохоТдСния тСста ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ 30 ΠΌΠΈΠ½ΡƒΡ‚, 21 вопрос.

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘2πŸ”₯1πŸŽ‰1
КакиС Π΅ΡΡ‚ΡŒ прСимущСства Ρƒ массива ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ?

Для хранСния ссылочных Ρ‚ΠΈΠΏΠΎΠ² массив ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ…ΡƒΠΆΠ΅ Ρ‡Π΅ΠΌ ArrayList. Π’ основС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π»Π΅ΠΆΠΈΡ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ массив, поэтому ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠΉ ΠΆΠ΅ самой. Однако, Π²Π°ΠΌ придСтся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ управлСния Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ массива ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. А Π·Π½Π°Ρ‡ΠΈΡ‚, Π±ΡƒΠ΄Π΅Ρ‚ большС шансов Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массивы вмСсто ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ ΠΏΠΎ эффСктивности. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ – generic-Ρ‚ΠΈΠΏΡ‹, ΠΈΠ·-Π·Π° этого простыС значСния хранятся Π² Π½ΠΈΡ… Π² Ρ„ΠΎΡ€ΠΌΠ΅ ссылочных Ρ‚ΠΈΠΏΠΎΠ²-ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ.

1. Autoboxing выдСляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, это дорогая опСрация;
2. ΠšΡ€ΠΎΠΌΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Object Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ;
3. Π―Ρ‡Π΅ΠΉΠΊΠΈ массива Π»Π΅ΠΆΠ°Ρ‚ Π±Π»ΠΈΠ·ΠΊΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, это ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΡˆΠ°Π½ΡΡ‹ попадания Π² кэш процСссора.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, для массива всё Ρ‚Π°ΠΊ ΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ большС ΠΊΠΎΠ΄Π°, ΠΎΠ½ слоТнСС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π·Π°ΠΌΠ΅Π½Π° листов Π½Π° массивы ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ считаСтся излишнСй ΠΌΠΈΠΊΡ€ΠΎΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.

Когда ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ всё-Ρ‚Π°ΠΊΠΈ хочСтся, стоит Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· мноТСства Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π½Π΅-generic Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. Бписки ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Eclipse Collections. Π’ Android Π΅ΡΡ‚ΡŒ HashMap с цСлочислСнными ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ – SparseArray.
πŸ‘17πŸ”₯2
Как ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ?

for/while. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ способ: цСлочислСнная пСрСмСнная-индСкс, которая увСличиваСтся ΠΎΡ‚ 0 Π΄ΠΎ size(). МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄Π°, с нСстандартным шагом. ΠŸΠ»Π°Ρ‚Π° Π·Π° это – Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΈΡ‚ΡŒΡΡ Π² индСксах ΠΈ ΠΌΠ΅Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Iterator. ООП-способ: ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ iterator() ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρƒ Π½Π΅Π³ΠΎ next() ΠΏΠΎΠΊΠ° hasNext() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true. Π’ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°, такая ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. Π’Π°ΠΊΠΎΠΉ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽΒ» ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² сторонний ΠΊΠΎΠ΄, Π½Π΅ отдавая саму ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ. Всё Π΅Ρ‰Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

for Iterable. БинтаксичСский сахар для ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ синтаксис ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ΅Π½ просто ΠΎΠ±Ρ…ΠΎΠ΄. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ явного использования ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π½Π΅ Π΄Π°Π΅Ρ‚ возмоТности ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты Π² процСссС.

Π‘Ρ‚Ρ€ΠΈΠΌΡ‹. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ стрим ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с элСмСнтами Π² Π½Ρ‘ΠΌ. ΠšΡ€ΠΎΠΌΠ΅ простого forEach(), ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ всСй ΠΌΠΎΡ‰ΡŒΡŽ Java Steam API – Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты. Π—Π° это ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ лишниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° синтаксис Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ развСсистый.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Java 8. Π‘ этой вСрсии появились ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ срСдства для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строк. Π£ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈ Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ† добавились ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ forEach для ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΈ replaceAll для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Как со стримами, ΠΎΠ½ΠΈ Π΄Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ, Π½ΠΎ Π±Π΅Π· ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ создания стримов. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ простыС ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ for.
πŸ‘14πŸ”₯5❀1
πŸ‘©β€πŸ’» ΠšΡƒΡ€Ρ для Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ роста.

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

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

➑️ ΠŸΠ ΠžΠ™Π’Π˜ Π’Π•Π‘Π’: https://vk.cc/cyCGJ8

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

Π­Ρ‚ΠΎ Π½Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, Π° характСристики Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ интСрфСйса Iterator. Они ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅Π΄Π΅Ρ‚ сСбя ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Fail-fast – «быстрый» ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€. Когда послС Π΅Π³ΠΎ создания коллСкция ΠΊΠ°ΠΊ-Π»ΠΈΠ±ΠΎ измСнилась, ΠΎΠ½ ΠΏΠ°Π΄Π°Π΅Ρ‚ с ошибкой Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π². Π’Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ класса ArrayList, ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ½ выбрасываСт ConcurrentModificationException. РСкомСндуСтся Π½Π΅ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° fail-fast ΠΎΡ‚ΠΊΠ°Π·Π°Ρ…, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ ошибки Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Fail-safe – Β«ΡƒΠΌΠ½Ρ‹ΠΉΒ» ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠ»Π°Ρ‚Π° Π·Π° ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ – возмоТная Π½Π΅ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… («слабая ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΒ»). Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ класса ConcurrentHashMap Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΊΠΎΠΏΠΈΠ΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ½ Π½Π΅ выбросит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ свСТих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠŸΠ»Π°Ρ‚Π° Π·Π° отсутствиС ошибок Π΄Ρ€ΡƒΠ³ΠΈΡ… fail-safe ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, Π΄Π΅Ρ‚Π°Π»ΠΈ всСгда ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ.
πŸ‘12πŸ‘3πŸ”₯2
КакиС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹?

Π’ Java имССтся 9 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ: ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· восьми ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²:
πŸ”˜ byte – Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚ -2^7 Π΄ΠΎ 2^7-1;
πŸ”˜ short – Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚ -2^15 Π΄ΠΎ 2^15-1;
πŸ”˜ int – Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚ -2^31 Π΄ΠΎ 2^31-1;
πŸ”˜ long – Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚ -2^63 Π΄ΠΎ 2^63-1;
πŸ”˜ float – Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ 32 Π±ΠΈΡ‚Π° стандарта IEEE 754;
πŸ”˜ double – Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ float, Π½ΠΎ 64 Π±ΠΈΡ‚Π°;
πŸ”˜ char – 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ символ Unicode, ΠΎΡ‚ '\u0000'(0) Π΄ΠΎ '\uffff'(65535);
πŸ”˜ boolean – true ΠΈΠ»ΠΈ false;

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ поля ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ значСния: 0, 0L, '\u0000', false. ΠŸΡ€ΠΎ особСнности Ρ€Π°Π±ΠΎΡ‚Ρ‹, способ хранСния ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ стоит ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ интСрСсная Ρ‚Π΅ΠΌΠ° – boxing/unboxing. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ снабТСн своСй ссылочной вСрсиСй. ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ заворачиваСтся ΠΈ разворачиваСтся ΠΈΠ· Π½Π΅Π³ΠΎ автоматичСски ΠΏΡ€ΠΈ нСобходимости. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ большим Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌ Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ int индСкс Ρ†ΠΈΠΊΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Object ΠΈ прСвращаСтся Π² Integer Π±Π΅Π· Π½ΡƒΠΆΠ΄Ρ‹ – частая Π·Π°Π΄Π°Ρ‡Π° Π½Π° собСсСдованиях. Π•Ρ‰Π΅ классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ содСрТат Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ€Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для ΠΈΡ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ².

Бколько памяти Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² – вопрос с ΠΏΠΎΠ΄Π²ΠΎΡ…ΠΎΠΌ. БпСцификация Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Ρ‹Π» достаточным для всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ опрСдСляСтся Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ JVM, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС. НапримСр Π² 64-bit HotSpot пСрСмСнная boolean Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ 1 Π±ΠΈΡ‚, Π° 8.
πŸ‘14πŸ”₯1
βš‘οΈΠ’Π°ΡˆΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚ ΠΎΡ‚ ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ·-Π·Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ сборки мусора?

✨А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ваши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ быстрСС ΠΈ эффСктивнСС. Π’Ρ‹ освоили ΠΏΡ€Π°Π²ΠΈΠ»Π° владСния ΠΈ заимствования Π² Rust, Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ бСзопасно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ссылки ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π’Π°Ρˆ ΠΊΠΎΠ΄ стал Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ!

πŸ§‘β€πŸ’»ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌΡƒ Π²Π΅Π±ΠΈΠ½Π°Ρ€Ρƒ «Как Rust управляСт рСсурсами Π±Π΅Π· сборки мусора?Β» 1 августа Π² 20:00 мск ΠΈ сдСлайтС этот ΠΏΡ€Ρ‹ΠΆΠΎΠΊ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅!

🎯 ΠœΡ‹ рассмотрим ΠΏΡ€Π°Π²ΠΈΠ»Π° владСния ΠΈ заимствования, посмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° ΠΈ разбСрёмся, Π·Π°Ρ‡Π΅ΠΌ Π² язык Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ явныС Π»Π°ΠΉΡ„Ρ‚Π°ΠΉΠΌΡ‹.

πŸ§‘β€πŸ’»Π£Ρ€ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Rust ΠΈΠ»ΠΈ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒ свои знания ΠΎΠ± ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ рСсурсами Π² этом языкС. Π’Π΅Π±ΠΈΠ½Π°Ρ€ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΊ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², Ρ‚Π°ΠΊ ΠΈ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π‘ΠΏΠΈΠΊΠ΅Ρ€ ΠšΠΈΡ€ΠΈΠ»Π» Π€Π΅Π΄Ρ‡Π΅Π½ΠΊΠΎ β€” ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языках.

πŸ‘‰Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ прямо сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ мСроприятиС: https://vk.cc/cyM00r
πŸ‘8πŸ‘3❀1πŸ”₯1😁1
πŸš€ ЗаканчиваСтся Π½Π°Π±ΠΎΡ€ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ "Java Generics для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования"! πŸš€

Π‘Ρ‚Π°Ρ€Ρ‚ΡƒΠ΅ΠΌ 30 июля Π² 20:00 ΠΏΠΎ мск.  УспСйтС ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ! 

ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌΡƒ ΡƒΡ€ΠΎΠΊΡƒ ΠΏΠΎ Java Generics ΠΎΡ‚ OTUS, Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π° с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 130 авторскими курсами для IT-спСциалистов. 

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… курса Java QA Engineer. Professional. Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСстирования Π½Π° Java. ΠŸΡ€ΠΎΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ, ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚Π΅ ΠΈ систСматизируйтС знания, Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹.

πŸ‘‰ Π§Ρ‚ΠΎ Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ Π½Π° ΡƒΡ€ΠΎΠΊΠ΅?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Java Generics?
Π’Ρ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ΡΡŒ Π² основах Java Generics, ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹. ΠŸΠΎΠΉΠΌΠ΅Ρ‚Π΅, ΠΊΠ°ΠΊ использованиС Generics ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ вашСго ΠΊΠΎΠ΄Π°.

ИспользованиС Java Generics Π² UI Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования
Π’Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Java Generics Π² UI Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования. Π£Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Generics ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ тСсты для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упростит ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ИспользованиС Java Generics Π² API Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования
Π’Ρ‹ освоитС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ использования Java Generics Π² API Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования. ΠŸΠΎΠΉΠΌΠ΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Generics для создания ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΌΠΎΡ‰Π½Ρ‹Ρ… тСстов для API, Ρ‡Ρ‚ΠΎ повысит Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… тСстовых сцСнариСв.

πŸ€” Как Π’Ρ‹ смоТСтС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ знания?

ΠŸΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ эффСктивности ΠΊΠΎΠ΄Π°
Π’Ρ‹ смоТСтС ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ бСзопасный ΠΈ эффСктивный ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Java Generics. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок Π½Π° этапС компиляции ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ качСство вашСго ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ тСсты для UI
Π’Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Java Generics для создания Π³ΠΈΠ±ΠΊΠΈΡ… ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… тСстов для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π­Ρ‚ΠΎ упростит ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования, дСлая ваши тСсты Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌΠΈ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ тСсты для API
Π’Ρ‹ смоТСтС ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΌΠΎΡ‰Π½Ρ‹Π΅ тСсты для API, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Java Generics. Π­Ρ‚ΠΎ повысит Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… тСстов ΠΈ упростит ΠΈΡ… ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ для эффСктивного тСстирования слоТных систСм.

Для рСгистрации Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ здСсь.

Π’ΠΎΡ€ΠΎΠΏΠΈΡ‚Π΅ΡΡŒ! ΠœΠ΅ΡΡ‚Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹.

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО "ОВУБ ΠžΠΠ›ΠΠ™Π-ΠžΠ‘Π ΠΠ—ΠžΠ’ΠΠΠ˜Π•". ИНН 9705100963.
πŸ‘4❀1πŸ”₯1
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ static?

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово static ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для объявлСния Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… классов, статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ»Π΅ΠΉ, Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ статичСских ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ².

БтатичСскиС поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ – Ρ‡Π»Π΅Π½Ρ‹ класса Π° Π½Π΅ экзСмпляра, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· имя класса. Код статичСского Π±Π»ΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ статичСским Ρ‡Π»Π΅Π½Π°ΠΌ. БтатичСскиС поля Π½Π΅ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π² сСриализации.

Для статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π½Π½Π΅Π΅ связываниС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° этапС компиляции, Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² наслСдниках.

БтатичСский Π±Π»ΠΎΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ выполняСтся потокобСзопасно, ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· сразу послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ класса класслоадСром. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ статичСских ΠΏΠΎΠ»Π΅ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² нСявном статичСском Π±Π»ΠΎΠΊΠ΅. Π‘Π»ΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько, выполнятся ΠΎΠ½ΠΈ Π² порядкС объявлСния.

БтатичСский ΠΈΠΌΠΏΠΎΡ€Ρ‚ (static import) ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ статичСскиС Ρ‡Π»Π΅Π½Ρ‹ классов Π² .java-Ρ„Π°ΠΉΠ».
πŸ‘8πŸ”₯3
Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ доступа?

πŸ”˜ private – доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСпосрСдствСнно ΠΈΠ· этого класса ΠΈ Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ…/Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… классов;
πŸ”˜ package-private – доступ ΠΈΠ· всСх классов этого ΠΏΠ°ΠΊΠ΅Ρ‚Π°. НаслСдники доступа Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½;
πŸ”˜ protected – доступ ΠΈΠ· всСх классов этого ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ всСх наслСдников;
πŸ”˜ public – Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ доступа;

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ доступа ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ классам, интСрфСйсам, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΈ полям. Они Π½ΡƒΠΆΠ½Ρ‹ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΈ для отдСлСния Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚ частСй ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ API.
πŸ‘11πŸ”₯1
πŸ”„ Как часто Π²Π°ΠΌ приходится Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² тСсты ΠΈΠ·-Π·Π° обновлСния интСрфСйса? 

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΡƒΠΉΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ постоянныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ. Java Generics позволяСт Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ элСмСнтами UI. 

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ с ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΈ с полями Π²Π²ΠΎΠ΄Π°, Π±Π΅Π· нСобходимости дублирования ΠΊΠΎΠ΄Π°. 

Π’ ΠΈΡ‚ΠΎΠ³Π΅, Π²Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚Π΅ врСмя Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ тСстов, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сократив врСмя Π½Π° ΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ² ΠΈΡ… ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

πŸ”§Π’Π°ΡˆΠΈ тСсты API часто ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ мноТСства ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… эндпоинтов? 

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Java Generics для создания ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… тСстов ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСсты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ эндпоинты. 

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ тСст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с нСсколькими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ запросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² API, Π½Π΅ трСбуя ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ эндпоинта. 

Π’ ΠΈΡ‚ΠΎΠ³Π΅, Π²Ρ‹ смоТСтС ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ тСстового покрытия. Π’Π°ΡˆΠΈ тСсты станут Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ измСнСниям Π² API.

πŸ”ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ΡΡ Π»ΠΈ Π²Π°ΠΌ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ структурами Π΄Π°Π½Π½Ρ‹Ρ… Π² тСстах? 

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Java Generics ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ классы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ сдСлаСт ваш ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈ понятным. 

НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΉ класс для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ списков Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². 

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π²Ρ‹ смоТСтС ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ тСстов, Ρ‡Ρ‚ΠΎ упростит ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅.

πŸŒΠ‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ тСстов Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ²? 

ВСстированиС UI Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ ΠΈ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ. Java Generics позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ тСстов. 

НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ с Chrome, Ρ‚Π°ΠΊ ΠΈ с Firefox, Π±Π΅Π· нСобходимости дублирования ΠΊΠΎΠ΄Π°. 

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π²Ρ‹ сократитС врСмя Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ тСстов для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚Π΅ ΠΈΡ… ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ.

πŸ“’Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Java Generics Π½Π° своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…?

ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ с Павлом Π‘Π°Π»Π°Ρ…ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ ΠΈ Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ свои вопросы.

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… курса Java QA Engineer. Professional. Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСстирования Π½Π° Java.

πŸ—“Π‘Ρ‚Π°Ρ€Ρ‚ΡƒΠ΅ΠΌ сСгодня Π² 20:00 ΠΏΠΎ мск.

β³Π’ΠΎΡ€ΠΎΠΏΠΈΡ‚Π΅ΡΡŒ! ΠœΠ΅ΡΡ‚Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹. Для рСгистрации Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ здСсь.

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО "ОВУБ ΠžΠΠ›ΠΠ™Π-ΠžΠ‘Π ΠΠ—ΠžΠ’ΠΠΠ˜Π•". ИНН 9705100963.
πŸ‘4πŸ”₯2
ΠžΠΏΠΈΡˆΠΈΡ‚Π΅ процСсс создания экзСмпляра класса

Π‘Π½Π°Ρ‡Π°Π»Π° класс ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹, свСрху Π²Π½ΠΈΠ·. Рассмотрим ClassLoader ΠΈ процСсс Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ классов Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… постах. Π—Π΄Π΅ΡΡŒ Π²Π°ΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ класс загруТаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΊ Π½Π΅ΠΌΡƒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ класслоадСра.

ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса выдСляСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ Π΅Π³ΠΎ статичСскиС поля ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ статичСскиС Π±Π»ΠΎΠΊΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π½ΠΈΠ²ΠΎΠΉ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° всСго класса, Π½ΠΎ ΠΈ инициализация Π΅Π³ΠΎ статичСских Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ.

Π”Π°Π»Π΅Π΅ инстанциируСтся сам экзСмпляр. Как ΠΈ с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ классов, процСсс выполняСтся для всСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ наслСдования, с самого дальнСго родитСля:
1. ВыдСляСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² ΠΊΡƒΡ‡Π΅ для экзСмпляра, получаСтся ссылка Π½Π° этот экзСмпляр;
2. Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ нСстатичСских ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² порядкС объявлСния;
3. ВызываСтся конструктор;

БтатичСскиС поля интСрфСйсов Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ состояния интСрфСйс Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ – это ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ вопрос порядка ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π΄ΠΊΠΎΠ² ΠΏΡ€ΠΈ мноТСствСнном наслСдовании.

Π’ процСссС конструирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Π² конструкторС, свойствСнная для ΠΌΠ½ΠΎΠ³ΠΈΡ… языков.
Effective Java Item 17 Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ пСрСопрСдСляСмыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΠΌ классС. Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ³ΠΎ повСдСния Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π²Ρ‹ΡˆΠ΅ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅
πŸ‘10❀3πŸ”₯2❀‍πŸ”₯1
πŸ“š ΠŸΡ€ΠΎΠΉΠ΄ΠΈ тСст Π½Π° Π·Π½Π°Π½ΠΈΠ΅ Java ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ доступ ΠΊ 59 ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΡƒΡ€ΠΎΠΊΠ°ΠΌ ΠΏΠΎ Spring

πŸ•— Π”Π²Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΡƒΡ€ΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π±Π΅Π· рСгистрации ΠΈ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ обучСния. Для доступа ΠΊΠΎ всСм ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΡƒΡ€ΠΎΠΊΠ°ΠΌ ΠΈΠ· курса Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° Spring FrameworkΒ» ΠΎΡ‚ OTUS Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ тСстированиС: ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° 21 вопрос ΠΈ ΡƒΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π°ΠΉΠΌΠΈΠ½Π³.

πŸ“Š -ΠšΡƒΡ€Ρ рассчитан Π½Π° профСссионалов с практичСским ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Java.
- ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ 5 мСсяцСв ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ вас Π² Ρ‚Π΅ΠΎΡ€ΠΈΡŽ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ Spring Framework.
- Π”Π°Π΄ΠΈΠΌ 18 практичСских Ρ€Π°Π±ΠΎΡ‚. ΠŸΡ€ΠΎΡ†Π΅ΡΡ review сдаваСмой Ρ€Π°Π±ΠΎΡ‚Ρ‹ максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ ΠΊ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½ ΠΌΠΎΠ³ Π±Ρ‹Ρ‚ΡŒ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Помимо этого, ΠΌΡ‹ попросим вас ΡΠ΄Π°Ρ‚ΡŒ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΊΠ°ΠΊΠΈΡ… скучных записанных занятий, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠΈΠ²Ρ‹Π΅ ΠΎΠ½Π»Π°ΠΉΠ½-Π»Π΅ΠΊΡ†ΠΈΠΈ, интСрСсныС практичСскиС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ развСрнутая обратная связь ΠΎΡ‚ Π»ΡƒΡ‡ΡˆΠΈΡ… экспСртов ниши. πŸ“… Π‘Ρ‚Π°Ρ€Ρ‚ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΡƒΠΆΠ΅ 31 июля 2024Π³. Доступна рассрочка Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅.

➑️ НАЧАВЬ Π’Π•Π‘Π’Π˜Π ΠžΠ’ΠΠΠ˜Π•

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576, www.otus.ru
πŸ‘3πŸ”₯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 Π° Π² ΠΊΠΎΠ΄Π΅ классов.

Π’ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ скрыт Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Π²ΠΎΡ…: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ сравниваСтся с ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ анбоксингу ΠΈ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. И ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° вопрос – Π΄Π°.
πŸ”₯13πŸ‘5❀3
Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ хранящСй null?

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

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

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

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

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

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

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

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

Ѐинализация ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ пСрСчислСний Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹.
πŸ‘11πŸ”₯3
πŸ‘©β€πŸ’» Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Reflection API ΠΈ ΠΊΠ°ΠΊ с этим Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ?

Π–Π΄Π΅ΠΌ вас Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅, Π³Π΄Π΅ ΠΌΡ‹ познакомимся с ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ рСфлСксии Π² языкС Java ΠΈ посмотрим, Π³Π΄Π΅ ΠΎΠ½ примСняСтся.
ПослС занятия Π²Ρ‹ смоТСтС Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ соврСмСнныС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ.

ВстрСчаСмся 7 августа Π² 20:00 мск.

Π‘ΠΏΠΈΠΊΠ΅Ρ€ АлСксандр Ѐисунов β€” Senior Kotlin Developer Π² SSP Software Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π’Π’Π‘, ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ тСхничСских Π½Π°ΡƒΠΊ.

πŸ‘‰ Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ прямо сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ мСроприятиС: https://vk.cc/cyTeXM

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯4❀2πŸ‘2
Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ классов?

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

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

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

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

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