en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels πŸ‘‰ If you want to see the tag, subscribe

Java Portal | ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Java Portal | ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Open in Telegram

ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ ΠΈ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ΡΡŒ Π² ΠΌΠΈΡ€ для Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Бвязь: @devmangx РКН: https://clck.ru/3H4WUg

Show more

πŸ“ˆ Analytical overview of Telegram channel Java Portal | ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Channel Java Portal | ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (@java_iibrary) in the Russian language segment is an active participant. Currently, the community unites 11 913 subscribers, ranking 10 459 in the Technologies & Applications category and 53 942 in the Russia region.

πŸ“Š Audience metrics and dynamics

Since its creation on Π½Π΅Π²Ρ–Π΄ΠΎΠΌΠΎ, the project has demonstrated rapid growth, gathering an audience of 11 913 subscribers.

According to the latest data from 31 October, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 293 over the last 30 days and by -1 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 10.96%. Within the first 24 hours after publication, content typically collects 6.20% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 306 views. Within the first day, a publication typically gains 738 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 3.
  • Thematic interests: Content is focused on key topics such as boot, string, void, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, resttemplate.

πŸ“ Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
β€œΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ ΠΈ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ΡΡŒ Π² ΠΌΠΈΡ€ для Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Бвязь: @devmangx РКН: https://clck.ru/3H4WUg”

Thanks to the high frequency of updates (latest data received on 01 November, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

11 913
Subscribers
-124 hours
-77 days
+29330 days
Posts Archive
ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π° с мСлкозСрнистой Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ: ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π° с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°ΠΊΠ΅Ρ‚ΠΎΠ² для ΠΌΠΈΠ½ΠΈ
ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π° с мСлкозСрнистой Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ: ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π° с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°ΠΊΠ΅Ρ‚ΠΎΠ² для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² β€” ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… систСм, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ кСши. πŸ‘‰ Java Portal

Π­Ρ‚ΠΎ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ основным ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Linux, разбитая ΠΏΠΎ катСгориям. πŸ”ΉΠ€Π°ΠΉΠ»Ρ‹ ΠΈ навигация πŸ”ΉΠ‘ΠΈΡΡ‚Π΅ΠΌΠ½Π°Ρ информация πŸ”ΉΠ‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄
Π­Ρ‚ΠΎ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ основным ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Linux, разбитая ΠΏΠΎ катСгориям. πŸ”ΉΠ€Π°ΠΉΠ»Ρ‹ ΠΈ навигация πŸ”ΉΠ‘ΠΈΡΡ‚Π΅ΠΌΠ½Π°Ρ информация πŸ”ΉΠ‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ πŸ”ΉΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ πŸ”ΉΠΡ€Ρ…ΠΈΠ²Π°Ρ†ΠΈΡ ΠΈ сТатиС πŸ”ΉΠŸΡ€Π°Π²Π° доступа πŸ”ΉΠ”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ πŸ‘‰ Java Portal

ReadWriteLock Π² Java ReadWriteLock β€” это ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠΎΠΌ Π² Java, которая позволяСт нСскольким ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ рСсурс, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ β€” Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈ Π½Π΅ ΠΏΠΈΡˆΡƒΡ‚. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π² прилоТСниях с ΠΏΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с использованиСм ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, synchronized ΠΈΠ»ΠΈ ReentrantLock), Π³Π΄Π΅ доступ ΠΊ рСсурсу ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ Π·Π° Ρ€Π°Π·. Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ReadWriteLock πŸ”ΉRead Lock (Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅): НСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, Ссли Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ Π½Π΅ Π²Π»Π°Π΄Π΅Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ Π½Π° запись ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ записи. Π­Ρ‚ΠΎ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния, Ρ‡Ρ‚ΠΎ эффСктивно для рСсурсов, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ часто ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π΄ΠΊΠΎ β€” Π½Π° запись. πŸ”ΉWrite Lock (Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° запись): Волько ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½Π° запись, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ писатСлСй. Π­Ρ‚ΠΎ обСспСчиваСт ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ доступ ΠΏΡ€ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, прСдотвращая Π½Π΅ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ. Java прСдоставляСт ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ интСрфСйса ReadWriteLock Π² Π²ΠΈΠ΄Π΅ класса ReentrantReadWriteLock. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ примСнСния Допустим, Ρƒ вас Π΅ΡΡ‚ΡŒ общая структура Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, кэш ΠΈΠ»ΠΈ список, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²: πŸ”ΉΠ§ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ: мноТСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² часто Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅. πŸ”ΉΠŸΠΈΡΠ°Ρ‚Π΅Π»ΠΈ: врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ обновляСт Π΄Π°Π½Π½Ρ‹Π΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ReadWriteLock, Π²Ρ‹ позволяСтС всСм читатСлям ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, Π½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ доступ. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ обСспСчиваСт ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. πŸ‘‰ Java Portal

Π—Π°Ρ‰ΠΈΡ‚Π° вашСго прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Spring Security ΠΈ OAuth2 Login. ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ доступ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½ ΠΊ / ΠΈ /login, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ эндп
Π—Π°Ρ‰ΠΈΡ‚Π° вашСго прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Spring Security ΠΈ OAuth2 Login. ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ доступ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½ ΠΊ / ΠΈ /login, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ эндпоинты Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. ПолноС руководство Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ здСсь: Ρ‚Ρ‹ΠΊ πŸ‘‰ Java Portal

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅ дСмонстрируСт, ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ типобСзопасный ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ процСссор Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅ дСмонстрируСт, ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ типобСзопасный ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ процСссор Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с коллСкциями ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, с сотрудниками (Employee). ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹: > DataProcessor<T> β€” ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½Ρ‹ΠΉ класс, хранящий список элСмСнтов Ρ‚ΠΈΠΏΠ° T ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ getMax(...), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ максимум ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€Ρƒ. > Employee Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Comparable<Employee> ΠΈ пСрСопрСдСляСт ΠΌΠ΅Ρ‚ΠΎΠ΄ compareTo, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ сотрудников ΠΏΠΎ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π΅. > Π’ main() ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ сотрудников ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² DataProcessor<Employee>, послС Ρ‡Π΅Π³ΠΎ находится сотрудник с максимальной Π·Π°Ρ€ΠΏΠ»Π°Ρ‚ΠΎΠΉ. Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:
Highest paid: Bob ($75000.0)
πŸ‘‰ Java Portal

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ассоциациСй, Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ Π² Java ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ↳ Ассоциация: ΠžΠ±Ρ‰Π΅Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ↳ АгрСгация: ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Β«ΠΈΠΌΠ΅Π΅Ρ‚Β», ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСзависимо ↳ ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ: ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Β«Ρ‡Π°ΡΡ‚ΡŒΒ», ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π’ΠΈΠΏ ↳ Ассоциация: Π‘Π»Π°Π±ΠΎ связанноС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ↳ АгрСгация: ОслаблСнная Ρ„ΠΎΡ€ΠΌΠ° ассоциации (частный случай ассоциации) ↳ ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ: УсилСнная Ρ„ΠΎΡ€ΠΌΠ° ассоциации Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ↳ Ассоциация: ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ нСзависимы ↳ АгрСгация: Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ↳ ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ: Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° зависит ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π’Π»Π°Π΄Π΅Π½ΠΈΠ΅ ↳ Ассоциация: ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ↳ АгрСгация: Π Π°Π·Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ↳ ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ: Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ↳ Ассоциация: Π£ ΠΎΠ±ΠΎΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² собствСнный ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ↳ АгрСгация: Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ ↳ ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ: Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° строго привязан ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ↳ Ассоциация: Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ <β€”> УнивСрситСт (ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСзависимо) ↳ АгрСгация: ΠšΠ°Ρ„Π΅Π΄Ρ€Π° <β€”> УнивСрситСт (ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎ) ↳ ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ: Π‘Π΅Ρ€Π΄Ρ†Π΅ <β€”> Π§Π΅Π»ΠΎΠ²Π΅ΠΊ (Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°) ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π² Java ↳ Ассоциация: Класс A содСрТит ссылку Π½Π° класс B ↳ АгрСгация: Класс School содСрТит список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Student ↳ ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ: Класс House содСрТит ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Room (ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ House ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΈ Room) πŸ‘‰ Java Portal

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠ° для API-ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π”ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ типобСзопасныС ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². Π’ΠΎΡ‚ ΠΊ
Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠ° для API-ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π”ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ типобСзопасныС ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΡƒΡŽ ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΡƒ ApiResponse<T> для любого payload-Π° API. πŸ‘‰ Java Portal

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ β€” это ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Java-прилоТСния ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (большС
+2
ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ β€” это ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Java-прилоТСния ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (большС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ надСТности. ЭкосистСма Java с Π΅Ρ‘ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ прСдоставляСт инструмСнты для построСния ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… систСм. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ стратСгии ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ 1) ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ микросСрвисы РаздСляйтС ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚: Ρ€Π°Π·Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° нСбольшиС нСзависимыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠ»ΠΈ микросСрвисы. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвис ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСзависимо. πŸ”ΉΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°: ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², изоляция ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ², ускорСниС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. 2) Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ πŸ”ΉΠ“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ сСрвСров/инстансов для распрСдСлСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, AWS ELB ΠΈΠ»ΠΈ Nginx). πŸ”ΉΠ’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ рСсурсов Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС (CPU, RAM). ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… stateless-сСрвисов Π½Π° Spring Boot Π·Π° балансировщиком, Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ сСссий Π² Redis. 3) ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… πŸ”ΉΠŸΡƒΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ HikariCP для эффСктивного управлСния соСдинСниями. πŸ”ΉΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” внСдряйтС Redis ΠΈΠ»ΠΈ Ehcache для сокращСния ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ запросов. πŸ”ΉΠ¨Π°Ρ€Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ рСпликация β€” Π΄Π΅Π»ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π‘Π” ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ для высокой доступности. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° 2 Ρ„ΠΎΡ‚ΠΎ 4) Асинхронная ΠΈ событийно-ориСнтированная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° πŸ”ΉExecutorService β€” ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡƒΠ»Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². πŸ”ΉΠžΡ‡Π΅Ρ€Π΅Π΄ΠΈ сообщСний β€” Kafka ΠΈΠ»ΠΈ RabbitMQ для Π΄Π΅ΠΊΡƒΠΏΠ»ΠΈΠ½Π³Π° Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ пропускной способности. πŸ”ΉΠ Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” Project Reactor ΠΈΠ»ΠΈ RxJava для Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ…, событийных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° 3 Ρ„ΠΎΡ‚ΠΎ 5) Балансировка Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ πŸ”ΉΠ Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ запросов β€” с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ балансировщиков ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ инстанса. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Nginx ΠΈΠ»ΠΈ AWS ELB для ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ API-запросов ΠΊ нСскольким backend-инстансам Java. 6) ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ πŸ”ΉΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΈ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ β€” ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ систСму с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ², примСняйтС Π°Π²Ρ‚ΠΎ-ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ рСсурсы. πŸ”ΉΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ Π°Π»Π΅Ρ€Ρ‚Ρ‹ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Prometheus, ELK Stack ΠΈ Π΄Ρ€. для отслСТивания ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈ Ρ€Π°Π½Π½Π΅Π³ΠΎ выявлСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. ЧСклист Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ > ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ stateless-сСрвисы для простоты Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. > Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ API для взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ модулями/сСрвисами. > РСгулярно ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΡŒΡ‚Π΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. > Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅: авторизация, ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅, сканированиС уязвимостСй. > ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ роста ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. πŸ‘‰ Java Portal

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ конкуррСнтности, Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Π΅ прилоТСния с высокой Π½Π°Π³Ρ€ΡƒΠ·ΠΊ
ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ конкуррСнтности, Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Π΅ прилоТСния с высокой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ, стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° lock-free ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ИспользованиС Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… позволяСт ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, это ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ доступС ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ πŸ‘‰ Java Portal

Java остаётся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых популярных языков ΡƒΠΆΠ΅ большС Π΄Π²ΡƒΡ… дСсятилСтий. БанковскиС систСмы, e-commerce ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Android
Java остаётся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых популярных языков ΡƒΠΆΠ΅ большС Π΄Π²ΡƒΡ… дСсятилСтий. БанковскиС систСмы, e-commerce ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Android-прилоТСния ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, всё это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Java. Π’ этом курсС Ρ‚Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡˆΡŒ основы Java: ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² Π΄ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (OOP). 😊 πŸ‘‰ Java Portal

Π’Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° (deadlock) Π² Java Π’Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚
Π’Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° (deadlock) Π² Java Π’Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ освобоТдСния Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ зависанию ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Вакая ситуация Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌΠ° ΠΈ становится ΠΊΠΎΡˆΠΌΠ°Ρ€ΠΎΠΌ Π² ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… прилоТСниях 😨 πŸ‘‰ Java Portal

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Мини-ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΈ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ повторяСт основы πŸ”Έbyte β€” 1 Π±Π°ΠΉΡ‚ Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½: -128 Π΄ΠΎ 127 πŸ”Έshort
ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Мини-ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΈ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ повторяСт основы πŸ”Έbyte β€” 1 Π±Π°ΠΉΡ‚ Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½: -128 Π΄ΠΎ 127 πŸ”Έshort β€” 2 Π±Π°ΠΉΡ‚Π° Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½: -32,768 Π΄ΠΎ 32,767 πŸ”Έint β€” 4 Π±Π°ΠΉΡ‚Π° Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½: -2,147,483,648 Π΄ΠΎ 2,147,483,647 πŸ”Έlong β€” 8 Π±Π°ΠΉΡ‚ Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½: Β±9 ΠΊΠ²ΠΈΠ½Ρ‚ΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² (Β±2^63) πŸ”Έfloat β€” 4 Π±Π°ΠΉΡ‚Π° Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ: ~7 Π·Π½Π°ΠΊΠΎΠ² послС запятой πŸ”Έdouble β€” 8 Π±Π°ΠΉΡ‚ Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ: ~15 Π·Π½Π°ΠΊΠΎΠ² послС запятой πŸ”Έchar β€” 2 Π±Π°ΠΉΡ‚Π° Π₯Ρ€Π°Π½ΠΈΡ‚ 1 Unicode-символ πŸ”Έ boolean β€” ~1 Π±ΠΈΡ‚ (зависит ΠΎΡ‚ JVM) ЗначСния: true / false πŸ‘‰ Java Portal

ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ‹Π΅ нСизмСняСмыС Π΄Π°Π½Π½Ρ‹Π΅ с использованиСм Java Records: ΠšΠ»Π°ΡΡΡ‹ record Π² Java ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ нСизмСняСмос
ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ‹Π΅ нСизмСняСмыС Π΄Π°Π½Π½Ρ‹Π΅ с использованиСм Java Records: ΠšΠ»Π°ΡΡΡ‹ record Π² Java ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ для бСзопасного ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ. Π’ сочСтании с ExecutorService ΠΎΠ½ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ❀️ πŸ‘‰ Java Portal

Различия ΠΌΠ΅ΠΆΠ΄Ρƒ List, Set ΠΈ Map Π² Java β€” ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ часто ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ 1. List прСдставляСт собой ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΡƒΡŽ
Различия ΠΌΠ΅ΠΆΠ΄Ρƒ List, Set ΠΈ Map Π² Java β€” ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ часто ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ 1. List прСдставляСт собой ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ элСмСнтов, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ порядок вставки, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ArrayList. Доступ ΠΊ элСмСнтам осущСствляСтся ΠΏΠΎ индСксу, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ list.get(0). ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹: add(), get(), remove(), set(). Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” ArrayList ΠΈ LinkedList. List ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ null. ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ обСспСчиваСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Collections.synchronizedList(). Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ примСнСния β€” ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΆΠ΅Π½ порядок элСмСнтов ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹. Для сортировки ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Collections.sort(). ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: быстроС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρƒ ArrayList, быстрая вставка Ρƒ LinkedList. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ list.stream(). 2. Set β€” это нСупорядочСнная коллСкция ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π½Π΅ гарантируСтся (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² HashSet). Доступ осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹: add(), contains(), remove(). Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” HashSet, LinkedHashSet, TreeSet. Set ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ элСмСнт null, ΠΊΠ°ΠΊ Π² HashSet. ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ отсутствуСт. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΆΠ½Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° поддСрТиваСтся Π² TreeSet, Π³Π΄Π΅ элСмСнты хранятся отсортированными. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: быстрыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² HashSet. ΠŸΠΎΡ‚ΠΎΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ (stream()). 3. Map β€” это коллСкция ΠΏΠ°Ρ€ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠšΠ»ΡŽΡ‡ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, значСния β€” Π½Π΅Ρ‚. ΠšΠ»ΡŽΡ‡ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нСупорядочСнными (HashMap), отсортированными (TreeMap) ΠΈΠ»ΠΈ упорядочСнными ΠΏΠΎ порядку вставки (LinkedHashMap). Доступ осущСствляСтся ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ map.get(key). ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹: put(), get(), remove(), containsKey(). Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” HashMap, LinkedHashMap, TreeMap, ConcurrentHashMap. Π Π°Π·Ρ€Π΅ΡˆΡ‘Π½ ΠΎΠ΄ΠΈΠ½ null-ΠΊΠ»ΡŽΡ‡ ΠΈ нСсколько null-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² HashMap). ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ отсутствуСт Π² HashMap, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π² ConcurrentHashMap. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. TreeMap ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сортировку ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: быстрый доступ Ρƒ HashMap, отсортированный доступ Ρƒ TreeMap. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· map.entrySet().stream(). πŸ‘‰ Java Portal

πŸ‘©β€πŸ’» JPQL: ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ»ΠΎΠΌΠ°ΡŽΡ‚ Hibernate Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ JPQL-запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ускорят Hibernate Π² 5
πŸ‘©β€πŸ’» JPQL: ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ»ΠΎΠΌΠ°ΡŽΡ‚ Hibernate Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ JPQL-запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ускорят Hibernate Π² 5 Ρ€Π°Π·, избСгая критичСских ошибок, тормозящих 80% ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²! ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ πŸ—“ 19 июня Π² 20:00 МБК πŸ†“ БСсплатно. Π£Ρ€ΠΎΠΊ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… старта курса Β«Java Developer. ProfessionalΒ». 🎯 О Ρ‡Ρ‘ΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ: βœ”οΈ- JPQL vs SQL: ΠΏΠΎΡ‡Π΅ΠΌΡƒ ваши запросы Π»ΠΎΠΌΠ°ΡŽΡ‚ Hibernate ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π‘Π” Π½Π΅ Β«ΡƒΠΌΠΈΡ€Π°Π»Π°Β» ΠΏΠΎΠ΄ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. βœ”οΈ Π’Π°ΠΉΠ½Ρ‹Π΅ Π»ΠΎΠ²ΡƒΡˆΠΊΠΈ: Π°Π½Ρ‚ΠΈΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ JPQL, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ N+1 SELECT ΠΈ тормозящиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡ… поиска Π² ΠΊΠΎΠ΄Π΅. βœ”οΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π½Π° максимум: ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JOIN FETCH, подзапросы ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² JPQL для ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ускорСния Hibernate. πŸ‘₯ ΠšΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно: Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌ Hibernate, систСмным Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. πŸ’‘Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΡƒΡ€ΠΎΠΊΠ° Π²Ρ‹: ΠΠ°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ эффСктивныС JPQL-запросы, ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ распространённых ошибок ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠΊΠΎΡ€ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Hibernate-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. 🎁 Π”Π°Ρ€ΠΈΠΌ ΠΏΡ€ΠΎΠΌΠΎΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ скидку Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ - JAVA_06 πŸ”— РСгистрация Π½Π° Π²Π΅Π±ΠΈΠ½Π°Ρ€: https://otus.pw/t0ok/ #Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° О Ρ€Π΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°Ρ‚Π΅Π»Π΅

Singleton Pattern Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ СдинствСнного экзСмпляра класса с Π»Π΅Π½ΠΈΠ²ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π±
Singleton Pattern Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ СдинствСнного экзСмпляра класса с Π»Π΅Π½ΠΈΠ²ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (double-checked locking) для обСспСчСния потокобСзопасности Π“Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ: > Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³Π³Π΅Ρ€ Π½Π° всё ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ > Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ > ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ созданиС ΠΏΡƒΠ»Π° соСдинСний > ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ послС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ πŸ“ πŸ‘‰ Java Portal

Spring Security. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ доступом Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ 1) Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ доступом Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ (RBAC)? RBAC β€” это ΠΏΠΎΠ΄Ρ…
+2
Spring Security. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ доступом Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ 1) Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ доступом Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ (RBAC)? RBAC β€” это ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ бСзопасности, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π°Π²Π° доступа Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ ролям, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Ρ€ΠΎΠ»ΠΈ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ роста прилоТСния. 2) Как Spring Security Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ RBAC Spring Security позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€ΠΎΠ»ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, USER, ADMIN, EDITOR) ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ эндпоинты ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ доступ ΠΊ Π½ΠΈΠΌ ΠΈΠΌΠ΅Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ€ΠΎΠ»ΡŒΡŽ. Π ΠΎΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хранятся Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° authorities (полномочия) Π² контСкстС Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. 3) ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ»Π΅ΠΉ Π ΠΎΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, MySQL) ΠΈ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Spring Data JPA. НапримСр: πŸ”ΈΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ с Ρ€ΠΎΠ»ΡŒΡŽ ADMIN ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ административным эндпоинтам, πŸ”ΈΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ с Ρ€ΠΎΠ»ΡŒΡŽ USER β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ функциям. 4) Π—Π°Ρ‰ΠΈΡ‚Π° эндпоинтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ Spring Security прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹Π΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ для контроля доступа: πŸ”Ή@PreAuthorize("hasRole('ADMIN')") β€” ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ доступ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с Ρ€ΠΎΠ»ΡŒΡŽ ADMIN. πŸ”Ή@Secured("ROLE_USER") ΠΈ @RolesAllowed("ROLE_EDITOR") β€” Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ способы указания Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… Ρ€ΠΎΠ»Π΅ΠΉ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ant matchers Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ бСзопасности для ограничСния доступа ΠΊ URL-шаблонам ΠΏΠΎ ролям. 5) Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ Ρ€ΠΎΠ»Π΅ΠΉ для Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ управлСния доступом Spring Security ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Ρ€ΠΎΠ»Π΅ΠΉ, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: πŸ‘‰ ADMIN > STAFF > USER Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€ΠΎΠ»ΡŒ ADMIN автоматичСски наслСдуСт всС ΠΏΡ€Π°Π²Π° Ρ€ΠΎΠ»Π΅ΠΉ STAFF ΠΈ USER. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сниТаСт ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ доступом. 6) Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ доступом Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ с JWT ΠΈ OAuth2 ΠŸΡ€ΠΈ использовании OAuth2 ΠΈΠ»ΠΈ JWT, Ρ€ΠΎΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚ΠΎΠΊΠ΅Π½Π΅ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° authorities Spring Security. Π­Ρ‚ΠΎ позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ ΠΈ стСйтлСс (stateless) Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ для API ΠΈ микросСрвисов. 7) ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π° ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ вас Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈ Ρ€ΠΎΠ»ΠΈ: > USER β€” ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ > CREATOR β€” ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ > EDITOR β€” ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ > ADMIN β€” ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊΠΎ всСм дСйствиям πŸ‘‰ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ управлСния доступом Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ Π² Spring Security позволяСт Ρ‡Ρ‘Ρ‚ΠΊΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ, ΠΊΡ‚ΠΎ ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ β€” с использованиСм Π³ΠΈΠ±ΠΊΠΈΡ… Ρ€ΠΎΠ»Π΅ΠΉ, Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΉ Ρ€ΠΎΠ»Π΅ΠΉ для слоТных случаСв. Π—Π°Ρ‰ΠΈΡ‰Π°ΠΉΡ‚Π΅ эндпоинты ΠΈ обСспСчивайтС Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΡŒ вашСго прилоТСния πŸ‘‰ Java Portal

ΠžΡ„Π΅Ρ€ VK для бэкСнд-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π·Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ VK ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ Weekend Offer для бэкСнд-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Если Π²Ρ‹ большС 3 Π»Π΅Ρ‚ ΠΏΠΈΡˆΠ΅Ρ‚Π΅
ΠžΡ„Π΅Ρ€ VK для бэкСнд-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π·Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ VK ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ Weekend Offer для бэкСнд-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Если Π²Ρ‹ большС 3 Π»Π΅Ρ‚ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π° Java, Go, Python ΠΈΠ»ΠΈ C++ β€” Ρƒ вас Π΅ΡΡ‚ΡŒ всС ΡˆΠ°Π½ΡΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π·Π° 2 дня: тСхничСскиС собСсСдования 28 июня, Π° Ρ„ΠΈΠ½Π°Π»Ρ‹, знакомство с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈ ΠΎΡ„Π΅Ρ€ 29 июня. ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠΉΡ‚Π΅ заявку Π΄ΠΎ 25 июня ΠΈ ΡΡ‚Π°Π½ΡŒΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒΡŽ VK! ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ мСроприятии β€” Π½Π° сайтС.

CompletableFuture - соврСмСнный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ асинхронному ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² Java. CompletableFuture Π² Java позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½
CompletableFuture - соврСмСнный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ асинхронному ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² Java. CompletableFuture Π² Java позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ асинхронныС Π·Π°Π΄Π°Ρ‡ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ чистого, Ρ†Π΅ΠΏΠΎΡ‡Π΅Ρ‡Π½ΠΎΠ³ΠΎ API. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… прилоТСниях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ API ΠΈ микросСрвисы. πŸ₯° πŸ‘‰ Java Portal

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ модСлирования Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ 1. Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ β€” ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π° ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Π·Π°ΠΊΠ°Π·). 2. Атрибут β€” Бвойство ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅ сущности (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, имя, email, Ρ†Π΅Π½Π°). 3. ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ β€” Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, user_id). 4. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ β€” Бсылка Π½Π° ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для связывания сущностСй. 5. Бвязь "ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ" β€” КаТдая строка Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ связана с ΠΎΠ΄Π½ΠΎΠΉ строкой Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. 6. Бвязь "ΠΎΠ΄ΠΈΠ½ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ" β€” Одна строка Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ связана с нСсколькими строками Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ β†’ посты). 7. Бвязь "ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ" β€” НСсколько строк Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ связаны с нСсколькими строками Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ (трСбуСтся Ρ‚Π°Π±Π»ΠΈΡ†Π°-связка). 8. Нормализация β€” ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… с Ρ†Π΅Π»ΡŒΡŽ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ дублирования ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ цСлостности. 9. ДСнормализация β€” Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… (Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…) Π΄Π°Π½Π½Ρ‹Ρ… для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ скорости чтСния. 10. ΠŸΠ΅Ρ€Π²Π°Ρ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° (1NF) β€” УстранСниС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π³Ρ€ΡƒΠΏΠΏ; каТдая ячСйка содСрТит Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. 11. Вторая Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° (2NF) β€” УстранСниС частичных зависимостСй ΠΎΡ‚ составного ΠΊΠ»ΡŽΡ‡Π°. 12. Π’Ρ€Π΅Ρ‚ΡŒΡ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° (3NF) β€” УстранСниС Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… зависимостСй (Π½Π΅ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ столбцы Π½Π΅ зависят ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½Π΅ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… столбцов). 13. Π‘ΡƒΡ€Ρ€ΠΎΠ³Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ β€” БистСмно-сгСнСрированный ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UUID ΠΈΠ»ΠΈ auto-increment ID). 14. ЕстСствСнный ΠΊΠ»ΡŽΡ‡ β€” Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, email ΠΈΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ€ паспорта). 15. Боставной ΠΊΠ»ΡŽΡ‡ β€” ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, состоящий ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… столбцов. 16. УникальноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ β€” ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² столбцС (ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ΅ столбцов). 17. Π”ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ NULL β€” Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² столбцС NULL (Ρ‚.Π΅. отсутствиС значСния). 18. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ β€” ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ значСния Π² столбцС Π½Π° соотвСтствиС условиям (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, age > 0). 19. ИндСкс β€” ΠŸΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ поиска Π·Π° счёт ускорСнного доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ. 20. Π‘Ρ…Π΅ΠΌΠ° β€” Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°/ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†, ΠΏΠΎΠ»Π΅ΠΉ, Ρ‚ΠΈΠΏΠΎΠ² ΠΈ связСй Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. 21. ERD (Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° "ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ-связь") β€” Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС сущностСй ΠΈ ΠΈΡ… связСй. 22. ΠšΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ β€” ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ строк, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связано Π² Ρ€Π°ΠΌΠΊΠ°Ρ… связи. 23. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… β€” ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ значСния ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ столбСц (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, INT, VARCHAR, DATE). 24. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ β€” ПолС, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, status = [pending, complete]). 25. МягкоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ β€” ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ° записи ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ Π±Π΅Π· фактичСского удалСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, deleted_at). πŸ‘‰ Java Portal

Java Portal | ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ - Statistics & analytics of Telegram channel @java_iibrary