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

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

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

ΠœΡ‹ Π½Π° Π±ΠΈΡ€ΠΆΠ΅: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
Бколько памяти Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚?

Π Π°Π·ΠΌΠ΅Ρ€ экзСмпляров ссылочных Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ JVM ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π΅Π΅ запуска. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² вопросС подразумСваСтся самая популярная машина – HotSpot ΠΎΡ‚ Oracle.

Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠ»Π΅ΠΉ-ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² Π±Ρ‹Π²Π°ΡŽΡ‚ большС Ρ‡Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² цСлях выравнивания (alignment). Из-Π·Π° Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ выравнивания ΠΌΠ΅ΠΆΠ΄Ρƒ полями Π² памяти ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ пустоты.

Как Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, ссылка Π² Java – Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² C++, это Π½Π΅ адрСс Π² памяти. Из-Π·Π° этого Ρ€Π°Π·ΠΌΠ΅Ρ€ поля-ссылки ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ машинного слова, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ³Π΄Π° HotSpot ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ «сТатиС ссылок» (Compressed OOP).

ΠšΡ€ΠΎΠΌΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² HotSpot начинаСтся с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° – runtime-ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‚ 8 Π΄ΠΎ 16 Π±Π°ΠΉΡ‚.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° строго большС суммы Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅ΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° измСряСтся срСдствами инструмСнтации.
πŸ‘15❀4πŸ”₯4
На ΠΊΠ°ΠΊΠΈΠ΅ области дСлится ΠΏΠ°ΠΌΡΡ‚ΡŒ JVM?

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ особСнности HotSpot (ΠΈ Π΅Ρ‘ opensource-вСрсии OpenJDK). Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Android) всё ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. ΠžΠ±Π»Π°ΡΡ‚ΠΈ-поколСния ΠΊΡƒΡ‡ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ зависят ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сборки мусора, ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Stack – мСсто ΠΏΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ ΠΈ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Π½ΠΎ Π½Π΅ сами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹). Π₯Ρ€Π°Π½ΠΈΡ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ хранятся ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠΊΠ° Ρ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΡƒΡŽΡ‚ΡΡ. ВсС Π΄Π°Π½Π½Ρ‹Π΅ Π² стСкС – GC roots. ΠžΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ‚ΡΡ сразу Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΏΠΎΡ‚ΠΎΠΊΡƒ, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ указываСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ -Xss, Π½ΠΎ ΠΏΡ€ΠΈ создании ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.
PermGen – Π’ этой области хранятся Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ классы (экзСмпляры класса Class<T>). Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ с Java 7 хранится ΠΏΡƒΠ» строк. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° -XX:PermSize, растСт динамичСски Π΄ΠΎ -XX:MaxPermSize. НС считаСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΡƒΡ‡ΠΈ.
Metaspace – с Java 8 замСняСт permanent generation. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ metaspace ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ доступной Π½Π° машинС памяти, Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ PermGen ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ -XX:MaxMetaspaceSize.
Heap – ΠΊΡƒΡ‡Π°, вся managed-ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранятся всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ВсС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ – части ΠΊΡƒΡ‡ΠΈ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ -Xms, -Xmn ΠΈ -Xmx ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ…ΠΈΠΏΠ° соотвСтствСнно.
Eden, New Generation, Old Generation ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ – спСцифичныС для сборщика мусора части ΠΊΡƒΡ‡ΠΈ, поколСния. ΠœΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅, Π½ΠΎ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сохраняСтся: Π΄ΠΎΠ»Π³ΠΎ ΠΆΠΈΠ²ΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ постСпСнно двигаСтся Π²ΠΎ всё Π±ΠΎΠ»Π΅Π΅ староС ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅; сборка мусора Π² Ρ€Π°Π·Π½Ρ‹Ρ… поколСниях происходит Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎ; Ρ‡Π΅ΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΡΡ‚Π°Ρ€ΡˆΠ΅, Ρ‚Π΅ΠΌ сборка Π² Π½Ρ‘ΠΌ Ρ€Π΅ΠΆΠ΅, Π½ΠΎ ΠΈ Π΄ΠΎΡ€ΠΎΠΆΠ΅.

Π₯отя устройство памяти – это Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, для Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° знания ΠΎ Π½ΠΈΡ… нСсут ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ. Π­Ρ‚ΠΈ знания Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² JVM, Ρ‡Ρ‚ΠΎ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ спасаСт ΠΎΡ‚ просадок ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ GC ΠΈ остановок с OutOfMemoryError.
πŸ‘17⚑3
Вакансия:Java Developer
Π“Ρ€Π΅ΠΉΠ΄: Miiddle+/Senior/Lead


Компания BSS β€” российский Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π”Π‘Πž ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π² сфСрС голосовых Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ услуг ΠΏΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΡŽ спСциалистов Π½Π° IT ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹.
БСйчас ΠΌΡ‹ Π² поискС ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Java Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² для нашСго Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ° - ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉΡΡ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² мобильной связи. Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ трСбуСтся Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ созданию соврСмСнной Π±ΠΈΠ»Π»ΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ систСмы ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· российских ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² связи.

Π’Π΅Ρ….стСк:
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ:
- Jira
- Confluence
Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ:
Java 11+, , Spring (web, data jpa, security, boot 2.5), Oracle 19, PostgreSQL, SQL, Camunda, Kafka, RabbitMQ, Gradle, Maven

ΠžΠ±ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΠΈ:
β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Java;
β€’ ΠžΡ†Π΅Π½ΠΊΠ° ΠΈ дСкомпозиция Π·Π°Π΄Π°Ρ‡;
β€’ Π£ΠΌΠ΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ‚ΠΊΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ/ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ/ тСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ для взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠΌ;
β€’ Π£ΠΌΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΈ Π² составС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹;
β€’ Багфикс, написаниС unit-tests;
β€’ Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌΡƒ Ρ†ΠΈΠΊΠ»Ρƒ ПО, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ статус ΠΈ описаниС Π·Π°Π΄Π°Ρ‡ Π² Π±Π°Π³-Ρ‚Ρ€Π΅ΠΊΠΈΠ½Π³ΠΎΠ²Ρ‹Ρ… систСмах Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии;
β€’ Π‘Π²ΠΎΠ΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚Ρ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚Π°Ρ… Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ Π·Π°Π΄Π°Ρ‡.

ВрСбования:
β€’ ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ 3+ Π³ΠΎΠ΄Π°;
β€’ Π£ΠΌΠ΅Π½ΠΈΠ΅ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ
β€’ Π§Π΅Ρ‚ΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ПО;
β€’ Π£Π²Π΅Ρ€Π΅Π½Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Java 8; Java 11
β€’ ПониманиС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Spring ΠΈ SpringBoot;
β€’ ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ;
β€’ Π Π°Π±ΠΎΡ‚Π° с микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ;
β€’ ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с message brokers (RabbitMQ, Kafka);
β€’ ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΈ Unit-тСстов;
β€’ ! ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»Π΅Π½ Π²ΠΎΠ΅Π½Π½Ρ‹ΠΉ Π±ΠΈΠ»Π΅Ρ‚ ΠΈΠ»ΠΈ приписноС ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ (для воСннообязанных)
β€’ ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API (REST, SOAP - Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ);
β€’ Π£ΠΌΠ΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ debug’ом (Π² Ρ‚ΠΎΠΌ числС ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ);
β€’ ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Jira Atlassian;

Π‘ΡƒΠ΄Π΅Ρ‚ плюсом:
β€’ Π£ΠΌΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Code Review;
β€’ ΠžΠΏΡ‹Ρ‚ с JPA Specification;
β€’ ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ SQL-запросов (Oracle);
β€’ ΠžΠΏΡ‹Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΈ развёртывания прилоТСния Π² Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€;
β€’ ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Linux (CLI).
β€’ Π Π°Π±ΠΎΡ‚Π° с GitLab, слСдованиС git-flow.

Условия:
β€’ Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ Π Π€, Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π² МосквС/ПСнзС обязатСлСн (1-2 Ρ€Π°Π·Π° Π² нСдСлю Π² офисС);
β€’ Π Π°Π±ΠΎΡ‚Π° Π½Π° ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ с соврСмСнными тСхнологиями Π² Π°ΠΊΠΊΡ€Π΅Π΄ΠΈΡ‚ΠΎΠ²Π°Π½Π½ΠΎΠΉ IT-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ;
β€’ ПолноС соблюдСниС ВК Π Π€ ΠΈ своСврСмСнная Π²Ρ‹ΠΏΠ»Π°Ρ‚Π° Π·Π°Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹;
β€’ Π”ΠœΠ‘ для вас ΠΈ сСмьи;
β€’ Π‘Ρ‚Ρ€Π°Ρ…ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½ΠΈ;
β€’ ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹;
β€’ ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Performance Review.

ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹:
@olga_sourcer
πŸ‘6❀3πŸ”₯1
Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°?
πŸ‘8πŸ”₯2🀯1
βœŠΠ Π°ΡΡˆΠΈΡ€ΡŒΡ‚Π΅ свой стСк ΠΈ Π°ΠΏΠ½ΠΈΡ‚Π΅ΡΡŒ Π² Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π΅!

πŸ‘‰ΠΠ°Ρ‡Π½ΠΈΡ‚Π΅ Π½Π° бСсплатном Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅ ΠΎΠ½Π»Π°ΠΉΠ½-курса Β«Greenplum для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠ²Β» - Β«Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Greenplum ΠΈ Π΅Ρ‘ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΡƒΒ»: рСгистрация

На Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎ структурС систСмы, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ΅ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ. Π’ практичСской части Π±ΡƒΠ΄ΡƒΡ‚ продСмонстрированы ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с запросами ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π¦Π΅Π»ΠΈ Π²Π΅Π±ΠΈΠ½Π°Ρ€Π°:
1. ΠžΡΠ½ΠΎΠ²Ρ‹: ΠŸΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ участников с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ Greenplum ΠΈ Π΅Ρ‘ концСпциями.
2. РаспрСдСлСнная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°: ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ прСимущСства MPP (Massively Parallel Processing).
3. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°: ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запросы.
4. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅: Π Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ отличия ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π‘Π£Π‘Π”, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ PostgreSQL.

πŸ€ΠŸΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡΡ ΡƒΡ€ΠΎΠΊ β€” ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π° курсС ΠΏΠΎ спСццСнС ΠΈ Π΄Π°ΠΆΠ΅ Π² рассрочку!

erid: LjN8K1J6X
πŸ‘4πŸ”₯3
Как ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°?

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

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

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

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

Когда Ρ‚ΠΈΠΏΠΎΠΌ Π²Π°Ρ€Π°Ρ€Π³Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ generic-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ warning Β«Possible heap pollution from parameterized vararg typeΒ». Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ Π² Ρ‡Π΅ΠΌ этот риск, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ΄ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ heap pollution, ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠΈΡ‚ΡŒ ΠΎΠ± этом компилятор Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ
@SafeVarargs.
πŸ‘11πŸ”₯5
πŸ‘©β€πŸ’» ΠšΡƒΡ€Ρ для Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ роста.

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

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

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

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
❀3πŸ‘3πŸ”₯2πŸŽ‰1
Как Π² лямбдС ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ внСшнюю Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ?

Π­Ρ‚ΠΎ нСльзя ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Π»ΠΎΠ±. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½Π΅ скомпилируСтся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ захвачСнная локальная пСрСмСнная обязана Π±Ρ‹Ρ‚ΡŒ effectively final. Π’Π°ΠΊΠΎΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ исходит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная хранится Π½Π° стСкС, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ врСмя Π΅Π΅ ΠΆΠΈΠ·Π½ΠΈ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰ΠΈΡ… элСмСнтов Ρ…ΠΈΠΏΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ скоупом ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ. Но экзСмпляр лямбды, Π·Π°Ρ…Π²Π°Ρ‚ΠΈΠ²ΡˆΠΈΠΉ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΌΠΎΠ³ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π½Π°Ρ€ΡƒΠΆΡƒ ΠΈ использован для доступа ΠΊ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² лямбду копируСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Вакая копия ΠΆΠΈΠ²Π΅Ρ‚ нСзависимо, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ дольшС ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°. Но это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ слоТному повСдСнию ΠΈΠ·-Π·Π° возмоТности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ – копия ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» станут двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Π΅Ρ‡Π½ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ – нСизмСняСмо.

Поля экзСмпляра ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² этом случаС выступаСт effectively final Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ this.

Если Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ всё ΠΆΠ΅ хочСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ – ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Ρ‘ Π² ΠΊΡƒΡ‡Ρƒ. Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любого Ρ€ΠΎΠ΄Π° ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΡƒ: одноэлСмСнтный массив, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-atomic, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданный класс с этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π΅ΠΌ.

Π₯Π°ΠΊ с ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΎΠΉ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΈ Π΄Π°Ρ‘Ρ‚ ΠΊΠΎΠ΄Ρƒ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ слоТности повСдСния. Если срСда многопоточная, Ρ‚ΠΎ вСроятно порядок ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ придСтся ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.
πŸ‘19πŸ”₯5❀2
πŸ‘©β€πŸ’» ΠŸΡ€ΠΎΠΉΠ΄ΠΈ тСст ΠΏΠΎ Java

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

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

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

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

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅. Deadlock – это взаимная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, ситуация, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° Β«Π½Π°ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³-Π΄Ρ€ΡƒΠ³Ρƒ Π½Π° хвост» – Π·Π°Π²ΠΈΡΠ°ΡŽΡ‚ Π² Π²Π΅Ρ‡Π½ΠΎΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ рСсурсов, Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

Livelock – похоТая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, с Ρ‚Π΅ΠΌ лишь ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π½Π΅ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ, Π° вмСсто этого Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ, выполняя ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ бСсполСзныС дСйствия, ходят ΠΏΠΎ ΠΊΡ€ΡƒΠ³Ρƒ.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π΄Π΅Π΄Π»ΠΎΠΊΠ° – установка строгого порядка взятия Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ. Если для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠ² A ΠΈ B ΡΠΎΠ±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ всСобщий порядок Π·Π°Ρ…Π²Π°Ρ‚Π° AB (ΠΈ соотвСтствСнно отпускания BA), Ρ‚ΠΎ Π½ΠΈ с ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π½Π΅ случится ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π½Π° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ B, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΈ этом Π·Π°Ρ…Π²Π°Ρ‚ΠΈΠ² A.

Из этого ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, простой способ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅Π΄Π»ΠΎΠΊΠ° – явно Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ это условиС.

ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ условия даст Π΄Π΅Π΄Π»ΠΎΠΊ «скорСС всСго ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒΒ». Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π°Π·Π°, Π½ΡƒΠΆΠ½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° окаТутся Π½Π° этапС ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Ρ…Π²Π°Ρ‚Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ рСсурса Π² ΠΎΠ΄Π½ΠΎ врСмя. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мноТСством способов, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ использован CyclicBarrier.
πŸ‘9πŸ”₯2β˜ƒ1
ВСстовоС собСсСдованиС Π½Π° Middle Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π·Π°Π²Ρ‚Ρ€Π°

Π£ΠΆΠ΅ Π·Π°Π²Ρ‚Ρ€Π°, 25 сСнтября Π² 19:00 ΠΏΠΎ мск ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ собСсСдованиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° настоящСС ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ Π½Π° Middle Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Как это Π±ΡƒΠ΄Π΅Ρ‚:
1. ΠœΠ°Ρ€ΠΈΡ Π―Π΄Π΅Ρ€Ρ†ΠΎΠ²Π° Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² МВБ Π”ΠΈΠ΄ΠΆΠΈΡ‚Π°Π» ΠΈ ex. Π‘Π±Π΅Ρ€Π±Π°Π½ΠΊ-Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ вопросы ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ-Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΡ†Ρƒ
2. ΠœΠ°Ρ€ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ рСспондСнта, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Π΅Π³ΠΎ ΠΎΡ‚ вас ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ
3. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π°Ρ‚ΡŒ любой вопрос ΠœΠ°Ρ€ΠΈΠΈ

Π§Ρ‚ΠΎ ΡƒΠ·Π½Π°Π΅ΡˆΡŒ Π½Π° прямом эфирС ΠΎΡ‚ ШОРВКАВ:

Β· Π§Π΅Π³ΠΎ ΠΆΠ΄ΡƒΡ‚ ΠΎΡ‚ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Π½Π° Middle ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅
Β· КакиС вопросы Π·Π°Π΄Π°ΡŽΡ‚ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΈ Π·Π°Ρ‡Π΅ΠΌ
Β· Как ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΊ собСсу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ„Ρ„Π΅Ρ€

Π­Ρ‚ΠΎ бСсплатно? БСсплатно

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈ Π² нашСго Π±ΠΎΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° эфир β†’ @shortcut_sh_bot

РСклама. ООО "ШОРВКАВ", ИНН: 9731139396, erid: 2VtzqvMv5C4
πŸ”₯4πŸ‘3❀2
Как устроСны Π°Ρ‚ΠΎΠΌΠΈΠΊΠΈ?

НачнСм с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π°Ρ‚ΠΎΠΌΠΈΠΊΠΈ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹. Atomic* – сСмСйство классов ΠΈΠ· java.util.concurrent. Они ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π½Π°Π±ΠΎΡ€ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². НапримСр с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² getAndIncrement/incrementAndGet класса AtomicInteger ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΉ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… условиях ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ (i++).

Условно ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° atomic-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹: compare-and-set ΠΈ set-and-get.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ compare-and-set ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ староС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½ΠΎΠ²ΠΎΠ΅. Если ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ΅ староС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ совпало с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ, устанавливаСтся Π½ΠΎΠ²ΠΎΠ΅. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΡƒΡŽΡ‚ Π²Ρ‹Π·ΠΎΠ² Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Unsafe, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ рСализациями Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ процСссора compare-and-swap (CAS). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π°Ρ‚ΠΎΠΌΠΈΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивны Ρ‡Π΅ΠΌ стандартная дорогостоящая Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°.

Π’ случаС set-and-get староС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нСизвСстно. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΡƒΠΆΠ΅Π½ нСбольшой Ρ‚Ρ€ΡŽΠΊ: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сначала считываСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ записываСт Π½ΠΎΠ²ΠΎΠ΅, Ρ‚ΠΎΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CAS, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ запись ΠΌΠΎΠ³Π»Π° ΡƒΡΠΏΠ΅Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π΄Π°ΠΆΠ΅ Π·Π° этот шаг. Π­Ρ‚Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° чтСния+записи повторяСтся Π² Ρ†ΠΈΠΊΠ»Π΅, ΠΏΠΎΠΊΠ° староС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ совпадСт ΠΈ пСрСмСнная Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ записана.

Π­Ρ‚ΠΎΡ‚ Ρ‚Ρ€ΡŽΠΊ называСтся double-checked ΠΈΠ»ΠΈ optimistic locking, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΈ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅ с Π»ΡŽΠ±Ρ‹ΠΌ способом синхронизации. ΠžΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ надССмся Ρ‡Ρ‚ΠΎ состояния Π³ΠΎΠ½ΠΊΠΈ Π½Π΅Ρ‚, прибСгая ΠΊ синхронизации Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π³ΠΎΠ½ΠΊΠ° всё ΠΆΠ΅ ΡΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ. РСализация оптимистичной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π°Π½Π° ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π·Π°Π΄Π°Ρ‡Π°.
πŸ‘16❀5πŸ”₯2
πŸ“ Знакомимся с Java Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΈΠ½Π³-ΠΏΠΎΠ½Π³Π°

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Java, Π΄Π°ΠΆΠ΅ Ссли Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π»ΠΈ?

Π–Π΄Π΅ΠΌ вас Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅ 26 сСнтября Π² 20:00 мск,

Π³Π΄Π΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ:

➑️ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ язык Java;
➑️ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ ΠΏΠΈΠ½Π³-ΠΏΠΎΠ½Π³ с нуля Π½Π° Java;
➑️ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ Π² Java.

Π£Ρ€ΠΎΠΊ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Java с нуля ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ прилоТСния.

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

ВстрСчаСмся Π² ΠΏΡ€Π΅Π΄Π΄Π²Π΅Ρ€ΠΈΠΈ старта курса «БпСциализация Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ».
ВсС участники Π²Π΅Π±ΠΈΠ½Π°Ρ€Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Ρƒ Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅!

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

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

ΠžΡ‚Π²Π΅Ρ‚: Not equal. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ real Π½Π΅ Ρ€Π°Π²Π½Π° самой сСбС. АрифмСтика с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² соотвСтствии со стандартом IEEE 754, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ возвращСния ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния Β«NaNΒ» (ΠΎΡ‚ английского Β«Not a NumberΒ» β€” Π½Π΅ число), ΠΊΠΎΠ³Π΄Π° ноль дСлится Π½Π° ноль. Π’ спСцификации Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ NaN Π½Π΅ Ρ€Π°Π²Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ само сСбя.

@javalib #java
πŸ‘31❀3πŸ”₯3😐3
Amplicode ΡƒΡ‡ΠΈΡ‚ Π²Π°ΡˆΡƒ IDE Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π½Π° языкС Spring Boot! 

Amplicode – ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ для IntelliJ IDEA Community ΠΈ Ultimate, ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈ ускоряСт Ρ€Π°Π±ΠΎΡ‚Ρƒ с тСхнологиями Spring Boot, JPA, Docker, Kafka, Liquibase, MapStruct ΠΈ Ρ‚.Π΄.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности: 

⚑ Навигация ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ согласно Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Spring прилоТСния  
⚑ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² сразу Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° вмСсто Java классов: ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹, Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, сСрвисы, сущности, события, DTO, ΠΌΠ°ΠΏΠΏΠ΅Ρ€Ρ‹ ΠΈ Ρ‚.Π΄.
⚑ ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° ΠΈ инспСктор, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΈ, доступныС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ контСкстС
⚑ Π£ΠΌΠ½Ρ‹Π΅ ΠΈΠ½ΠΆΠ΅ΠΊΡ†ΠΈΠΈ, подсказки ΠΈ исправлСниС ошибок

Π­Ρ‚ΠΎ малая Ρ‡Π°ΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Π½Π° Ρ‡Ρ‚ΠΎ способСн Amplicode. Π’ настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ возмоТности доступны Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ бСсплатно!

Π‘Π΄Π΅Π»Π°Π½ΠΎ с любовью ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, создавшСй супСрпопулярный ΠΏΠ»Π°Π³ΠΈΠ½ JPA Buddy β€οΈ

ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Amplicode

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΊΠ°ΠΊ Amplicode ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Spring Boot Π² IntelliJ IDEA! 

#Ρ€Π΅ΠΊΠ»Π°ΠΌΠ°
О Ρ€Π΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°Ρ‚Π΅Π»Π΅
πŸ‘11❀2πŸ”₯2
Highload, систСмный Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ Π½Π° курс для ΠΏΡ€ΠΎΠΊΠ°Ρ‡ΠΊΠΈ Π½Π°Π²Ρ‹ΠΊΠΎΠ² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹ для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ роста программиста.

🌐 Π‘ курсом «БистСмный Π΄ΠΈΠ·Π°ΠΉΠ½ высоконагруТСнных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²Β» Π²Ρ‹:

β–ͺ️изучитС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ проСктирования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π½ΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ (балансировка, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΠΏΠΏ/кСшСй/субд, высокая Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΈ кластСрныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΡˆΠ°Ρ€Π΄ΠΈΠ½Π³, CAP/PACELS, ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ, саги, Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅)
β–ͺοΈΠΏΠΎΡƒΠΏΡ€Π°ΠΆΠ½ΡΠ΅Ρ‚Π΅ΡΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ…: ΠΌΠ°Π³Π°Π·ΠΈΠ½/маркСтплСйс, такси/доставка, обьявлСния, соцсСти, Π΄Π΅ΠΉΡ‚ΠΈΠ½Π³, ΠΈΠ³Ρ€Ρ‹, википСдия, мСссСнТСр, CDN, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€, счСтчики, ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π²Π΅Π±Ρ…ΡƒΠΊΠΈ, рассылки ΠΈ Ρ‚Π΄.
β–ͺ️ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ
бизнСс-ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ с Π½Π΅Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ трСбованиями ΠΊ систСмС
β–ͺ️ попрактикуСмся Π² ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΈ прохоТдСния сСкций систСмного Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ

Всё Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Β«ΠΆΠΈΠ²Ρ‹Ρ…Β» ΠΎΠ½Π»Π°ΠΉΠ½-сСссий (Π»Π΅ΠΊΡ†ΠΈΠΈ, Π±Ρ€Π΅ΠΉΠ½ΡˆΡ‚ΠΎΡ€ΠΌΡ‹, ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²).

πŸ₯Έ ΠšΡ‚ΠΎ ΠΌΡ‹: школа Devhands, ΠΎΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡˆΠΊΠΎΠ»Ρ‹ ΠΈ Π°Π²Ρ‚ΠΎΡ€ курса АлСксСй Π Ρ‹Π±Π°ΠΊ, ex-БВО Badoo, с 20-Π»Π΅Ρ‚Π½ΠΈΠΌ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ высоконагруТСнных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΈ управлСния Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ тСхнологичСскими организациями, Ρ‡Π»Π΅Π½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Π° Highload.

πŸ—“ Π‘Ρ‚Π°Ρ€Ρ‚ 22-Π³ΠΎ октября, ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, записываСмся здСсь

erid: 2VtzquffYem
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘9πŸ”₯2
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ daemon thread?

Π”Π΅ΠΌΠΎΠ½ Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ – фоновая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Π’ Java ΠΏΠΎΡ‚ΠΎΠΊΠΈ-Π΄Π΅ΠΌΠΎΠ½Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ схоТий смысл: это ΠΏΠΎΡ‚ΠΎΠΊΠΈ для Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… дСйствий ΠΏΠΎ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΡŽ основных ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π½Π΅-Π΄Π΅ΠΌΠΎΠ½Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ (user thread).

Π’Ρ€Π΅Π΄ создаСтся Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ, Ссли Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π΄Π΅ΠΌΠΎΠ½. Бвойство Java-Ρ‚Ρ€Π΅Π΄Π° isDaemon ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΄ΠΎ старта ΠΏΠΎΡ‚ΠΎΠΊΠ°.

По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π΄Π΅ΠΌΠΎΠ½Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ мСньший ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ выполнСния.

Когда всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚Ρ€Π΅Π΄Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈΡΡŒ, JVM Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π”Π΅ΠΌΠΎΠ½Ρ‹ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, поэтому Π½Π΅ ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ остановкС, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π΅ доТидаясь окончания ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Daemon thread ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для Ρ‚Π°ΠΊΠΈΡ… дСйствий, ΠΊΠ°ΠΊ инвалидация кэша, пСриодичСская актуализация Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников, освобоТдСниС Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… рСсурсов.
πŸ‘11πŸ”₯3
πŸ‘©β€πŸ’» ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ «Знакомство со Spring CloudΒ».

Как эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ самый популярный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π² Java-ΠΌΠΈΡ€Π΅ для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?

πŸ“† Π£Π·Π½Π°ΠΉΡ‚Π΅ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅ 10 октября Π² 20:00 мск.

Π“Π΄Π΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ:

- Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Spring Cloud ΠΈ для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½;
- ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ… основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² состоит Spring Cloud;
- ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Spring Cloud для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π‘ΠΏΠΈΠΊΠ΅Ρ€ Π‘Π΅Ρ€Π³Π΅ΠΉ ΠŸΠ΅Ρ‚Ρ€Π΅Π»Π΅Π²ΠΈΡ‡ β€” ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Java/Kotlin-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ.

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

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

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО Β«ΠžΡ‚ΡƒΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠžΠ“Π Π 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ₯°4πŸ‘2πŸ”₯2
Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ thread local ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅?

Класс ThreadLocal прСдставляСт Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ρ‚Ρ€Π΅Π΄-Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. По способу использования ΠΎΠ½ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΡƒ Π½Π°Π΄ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ get(), set() ΠΈ remove() для доступа ΠΊ Π½Π΅ΠΌΡƒ, ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ThreadLocal.withInitial(), ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚Ρ€Π΅Π΄-локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ThreadLocal Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ копию значСния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π Π°Π±ΠΎΡ‚Π° с Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ потокобСзопасна.

ΠŸΡ€ΠΎΡ‰Π΅ говоря, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса ThreadLocal Ρ…Ρ€Π°Π½ΠΈΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° ΠΊΠ°ΠΊ Π±Ρ‹ Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΠΎΡ‚ΠΎΠΊβžΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ ΠΏΡ€ΠΈ использовании обращаСтся ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ, самый ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования – Π΄Π°Π½Π½Ρ‹Π΅, относящиСся нСпосрСдствСнно ΠΊ Ρ‚Ρ€Π΅Π΄Ρƒ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ «контСкст ΠΏΠΎΡ‚ΠΎΠΊΠ°Β». На ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ использования: ThreadId.get() Π²Π΅Ρ€Π½Π΅Ρ‚ порядковый Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ‚Ρ€Π΅Π΄Π°.

Π”Ρ€ΡƒΠ³ΠΎΠΉ случай, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ локальная пСрСмСнная ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ – ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ read-only Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ срСдС Π±Π΅Π· дорогостоящСй синхронизации.

Помимо ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ThreadLocal, Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ присутствуСт Π΅Π³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ InheritableThreadLocal. Π­Ρ‚ΠΎΡ‚ класс «наслСдуСт» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ – ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Π΅Ρ€Π΅Ρ‚ Π΅Π³ΠΎ для ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ.
πŸ‘14πŸ”₯2❀1
πŸ” ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ микросСрвисов с трудоустройством ΠΌΠΈΠ΄Π»ΠΎΠΌ:
Kafka, Docker, Spring Cloud, CI/CD, Kubernetes, Prometheus, Grafana, ELK, ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° (Discovery, API Gateway, Config, Circuit Breaker ΠΈ Ρ‚.Π΄.), Spring Boot 3, JWT, Redis, OpenApi, Mockito, Testcontainers

πŸ”€πŸ”€πŸ”€πŸ”€πŸ”€πŸ”€πŸ”€
1) Π‘ΠΎΠ΅Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
2) Π‘Π²ΠΎΠΈ стСнды со всСй инфраструктурой
3) Команда профСссионалов с ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ ΠΏΠΎ 15 Π»Π΅Ρ‚ Π² java
4) 100% Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅
πŸ”€πŸ”€πŸ”€πŸ”€πŸ”€πŸ”€πŸ”€

Бтатистика:
1) 72% рСбят ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 1 ΠΎΡ„Π΅Ρ€ Π½Π° ΠΌΠΈΠ΄Π»Π° Π΄ΠΎ окончания курса
2) Π•ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… этот ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π±Ρ‹Π» 100%
3) Π’ послСднСм выпускС Π’Π»Π°Π΄(Π±Π΅Π· коммСрчСского ΠΎΠΏΡ‹Ρ‚Π°) сдСлал Ρ€Π΅ΠΊΠΎΡ€Π΄ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» 7 ΠΎΡ„Π΅Ρ€ΠΎΠ² Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° курса, самый большой Π½Π° 250ΠΊ
4) 36% рСбят Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π½Π°Π±ΠΎΡ€Π΅ это ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽΡ‰ΠΈΠ΅ Java Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ соврСмСнный стСк
5) 64% соотвСтствСнно это рСбята, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΡˆΠ»ΠΈ курсы, Π½ΠΎ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ Π² сСбС ΠΈΠ»ΠΈ Π½Π΅ Π·Π½Π°ΡŽΡ‚ ΠΌΠΈΠΊΡ€Ρ‹

ΠžΡ‚Π·Ρ‹Π²Ρ‹ Π² плСйлистС: https://www.youtube.com/watch?v=BSh0jK2GxqU&list=PLt91xr-Pp57QsW6CLBAosBjwc23kF6mW3

βœ… Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΎΡ‚Π·Ρ‹Π² послС курса - я стал ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ программистом, Π½Π΅ боюсь собСсов ΠΈ Π½Π΅ боюсь испыталки!

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ здСсь: https://javaguru.by/developer


❗️Для подписчиков JavaGuru скидка 10%
ΠŸΡ€ΠΎΠΌΠΎΠΊΠΎΠ΄: JAVAGURU_TG
ДСйствуСт Π΄ΠΎ 08.10.2024


ΠšΠΎΠΌΡƒ интСрСсно ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΌΠ½Π΅: @AndreiMentorJava
ΠŸΡ€ΠΈΠ²Π΅Ρ‚, АндрСй, интСрСсСн ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ! JAVAGURU_TG

Как ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠΆΡƒ ΠΏΠΎ ΡƒΡ€ΠΎΠ²Π½ΡŽ для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌΠ°?
1) Писали ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° spring boot
2) Π‘ΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚ΡŒΡΡ со ΠΌΠ½ΠΎΠΉ (Π”Π°ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь, Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄Ρ‚ΡΠ½ΡƒΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ссли ΡƒΠΆΠ΅ Π½Π΅Ρ‚ смысла курс ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ)

Π‘ΡƒΠ΄Ρƒ Ρ€Π°Π΄ ΠΏΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ!
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘6😁4πŸ”₯3🌚2😱1