en
Feedback
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 768 subscribers, ranking 10 256 in the Technologies & Applications category and 54 543 in the Russia region.

πŸ“Š Audience metrics and dynamics

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

According to the latest data from 29 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -144 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.09%. Within the first 24 hours after publication, content typically collects 5.78% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 188 views. Within the first day, a publication typically gains 681 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 4.
  • 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 30 August, 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 768
Subscribers
-124 hours
-237 days
-14430 days
Posts Archive
ВнутрСнности Java switch Как компилятор Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚, ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ? ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ: любой switch Π² Java компилируСтся Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π΄Π²ΡƒΡ… JVM-инструкций: > tableswitch > lookupswitch ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ каТдая ΠΈΠ· Π½ΠΈΡ…, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ компилятор Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΡƒΡŽ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ сгСнСрируСт tableswitch:
public String tableSwitch() {
    return switch (value) {
        case 1 -> "one";
        case 2 -> "two";
        case 4 -> "four";
        default -> "other";
    };
}
А Π²ΠΎΡ‚ этот ΠΊΠΎΠ΄ сгСнСрируСт lookupswitch:
public String lookupSwitch() {
    return switch (value) {
        case 1 -> "one";
        case 10 -> "ten";
        case 100 -> "one hundred";
        default -> "other";
    };
}
Π’ΠΈΠ΄ΠΈΡˆΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ? πŸ‘ β€” Π΄Π°. Π²ΠΈΠΆΡƒ πŸ”₯ β€” Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ πŸ‘‰ Java Portal

Π£Ρ‚Π΅Ρ‡ΠΊΠΈ памяти ΠΈΠ·-Π·Π° Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° классов Π² Java Java-прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈΠ·-Π·Π° Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² классов, ΠΊΠΎΠ³Π΄Π° ст
Π£Ρ‚Π΅Ρ‡ΠΊΠΈ памяти ΠΈΠ·-Π·Π° Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° классов Π² Java Java-прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈΠ·-Π·Π° Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² классов, ΠΊΠΎΠ³Π΄Π° статичСскиС ссылки ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ сборщику мусора ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ старыС Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ. Π’Π°ΠΊΠΎΠ΅ часто происходит ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ Π΄Π΅ΠΏΠ»ΠΎΠ΅ Π½Π° сСрвСрах Π²Ρ€ΠΎΠ΄Π΅ Tomcat β€” ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ скрытым, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡƒΠ»ΠΎΠ²ΠΈΠΌΡ‹ΠΌ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ памяти πŸ” πŸ‘‰ Java Portal

Java с JMH для Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ² Π‘ΠΎΠ·Π΄Π°ΠΉ класс-Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° 😈 πŸ‘‰ Java Portal
Java с JMH для Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ² Π‘ΠΎΠ·Π΄Π°ΠΉ класс-Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° 😈 πŸ‘‰ Java Portal

Как ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π² Spring Boot πŸ”œ Π§ΠΈΡ‚Π°Ρ‚ΡŒ: ΠΊΠ»ΠΈΠΊ πŸ‘‰ Java Portal | #cΡ‚Π°Ρ‚ΡŒΡ
Как ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π² Spring Boot πŸ”œ Π§ΠΈΡ‚Π°Ρ‚ΡŒ: ΠΊΠ»ΠΈΠΊ πŸ‘‰ Java Portal | #cΡ‚Π°Ρ‚ΡŒΡ

ΠœΠ΅Ρ‚ΠΎΠ΄ FileSystems.newFileSystem(Path) появился Π΅Ρ‰Ρ‘ Π² JDK 13 (2019), Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΎ Π½Ρ‘ΠΌ Π½Π΅ Π·Π½Π°ΡŽΡ‚ Он позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ содСрТимому Ρ„Π°ΠΉΠ»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ZIP-Π°Ρ€Ρ…ΠΈΠ²Π°, ΠΊΠ°ΠΊ ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:
void main() {
    Path src = Path.of("/opt/jdk-24/lib/src.zip");

    try (FileSystem fs = FileSystems.newFileSystem(src)) {
        for (Path root : fs.getRootDirectories()) {
            try (Stream<Path> walk = Files.walk(root, 1)) {
                walk.sorted().forEach(IO::println);
            }
        }
    }
}
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния:
/
 /java.base
 /java.compiler
 /java.datatransfer
 /java.desktop
 /java.instrument
 /java.logging
 ...
 /jdk.unsupported
 /jdk.unsupported.desktop
 /jdk.xml.dom
 /jdk.zipfs
Π”ΠΎ появлСния этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТный ΠΊΠΎΠ΄ с URI ΠΈ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ схСму:
URI src = URI.create("jar:file:///opt/jdk-24/lib/src.zip");

try (FileSystem fs = FileSystems.newFileSystem(src, Map.of())) {
    ...
}
πŸ‘‰ Java Portal

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ LinkedList (двусвязный список) Π² Java? > Бостоит ΠΈΠ· ΡƒΠ·Π»ΠΎΠ², Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» содСрТит Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ссылки Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΡƒΠ·Π»Ρ‹ > БыстрыС вставки ΠΈ удалСния β€” O(1), Ссли Π΅ΡΡ‚ΡŒ ссылка Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π» > ΠœΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ доступ ΠΏΠΎ индСксу β€” O(n), Ρ‚.ΠΊ. Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ список ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ πŸ”§ Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ: > ЧастыС вставки ΠΈ удалСния β€” особСнно Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ»ΠΈ Π² сСрСдинС списка > РСализация ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ ΠΈ Π΄Π΅ΠΊΠΎΠ² β€” ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΊΠΎΠ½Π΅Ρ† ΠΈ Π·Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ· Π½Π°Ρ‡Π°Π»Π° > Π Π°Π±ΠΎΡ‚Π° с большими ΠΎΠ±ΡŠΡ‘ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ пСрСраспрСдСлСниС памяти (ΠΊΠ°ΠΊ Π² ArrayList) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠΌ. LinkedList Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ памяти > Undo/Redo-ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ…, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ быстро Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ дСйствия ΠΈΠ· истории πŸ‘‰ Java Portal

Π₯ΠΎΡ‡Π΅ΡˆΡŒ чистыС REST API Π½Π° Java? Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ: > @RestController > @RequestBody > @PathVariable > @ResponseStatus Spring REST ΠΏΠΎΠΌ
Π₯ΠΎΡ‡Π΅ΡˆΡŒ чистыС REST API Π½Π° Java? Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ: > @RestController > @RequestBody > @PathVariable > @ResponseStatus Spring REST ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ просто ΠΈ понятно πŸ§‘β€πŸ’» πŸ‘‰ Java Portal

УпроститС свой бизнСс-ΠΊΠΎΠ΄ Π½Π° Java с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Flow DSL πŸ”œ Π§ΠΈΡ‚Π°Ρ‚ΡŒ: ΠΊΠ»ΠΈΠΊ πŸ‘‰ Java Portal | #cΡ‚Π°Ρ‚ΡŒΡ
УпроститС свой бизнСс-ΠΊΠΎΠ΄ Π½Π° Java с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Flow DSL πŸ”œ Π§ΠΈΡ‚Π°Ρ‚ΡŒ: ΠΊΠ»ΠΈΠΊ πŸ‘‰ Java Portal | #cΡ‚Π°Ρ‚ΡŒΡ

πŸ‘©β€πŸ’» ВсСм программистам посвящаСтся! Π’ΠΎΡ‚ 17 авторских ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… IT ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΏΠΎ самым вострСбованным областям программирования: Π’Ρ‹Π±ΠΈΡ€Π°ΠΉ своё Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅:
πŸ“± GitHub β€” t.me/github_ready πŸ‘©β€πŸ’» Python β€” t.me/python_ready πŸ‘©β€πŸ’» Java β€” t.me/java_ready πŸ‘©β€πŸ’» Всё IT β€” t.me/it_ready πŸ‘©β€πŸ’» C/C++ β€” https://t.me/cpp_ready πŸ–ΌοΈ DevOps β€” t.me/devops_ready πŸ€” Π₯Π°ΠΊΠΈΠ½Π³ & Π˜Π‘ β€” t.me/hacking_ready πŸ‘©β€πŸ’» C# & Unity β€” t.me/csharp_ready πŸ‘©β€πŸ’» Linux β€” t.me/linux_ready πŸ‘©β€πŸ’» Bash & Shell β€” t.me/bash_ready πŸ‘©β€πŸ’» НСйросСти β€” t.me/neuro_ready πŸ“± JavaScript β€” t.me/javascript_ready πŸ‘©β€πŸ’» Frontend β€” t.me/frontend_ready πŸ“– IT Книги β€” t.me/books_ready πŸ–₯ Π‘Π°Π·Ρ‹ Π”Π°Π½Π½Ρ‹Ρ… & SQL β€” t.me/sql_ready πŸ‘©β€πŸ’» Backend β€” t.me/backend_ready πŸ–₯ Design β€” t.me/design_ready
πŸ“Œ Π“Π°ΠΉΠ΄Ρ‹, ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠΈ, Π·Π°Π΄Π°Ρ‡ΠΈ, рСсурсы ΠΈ Ρ„ΠΈΡˆΠΊΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ языка программирования!

Π­Ρ‚ΠΎΡ‚ Dockerfile для Spring Boot создаёт ΠΎΠ±Ρ€Π°Π·, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ потрСбляСт Π½Π° 33% мСньшС памяти ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, собранным с ΠΏΠΎ
Π­Ρ‚ΠΎΡ‚ Dockerfile для Spring Boot создаёт ΠΎΠ±Ρ€Π°Π·, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ потрСбляСт Π½Π° 33% мСньшС памяти ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, собранным с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Buildpacks (Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ Spring способ сборки Docker-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²) πŸ’ͺ πŸ‘‰ Java Portal

Π’ Ρ‡Ρ‘ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ throw ΠΈ throws Π² Java? throw > Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для явного выбрасывания ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. > Бинтаксис: throw new Ex
Π’ Ρ‡Ρ‘ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ throw ΠΈ throws Π² Java? throw > Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для явного выбрасывания ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. > Бинтаксис: throw new ExceptionType("сообщСниС"); > ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠ°. throws > ΠžΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄. > УказываСтся Π² сигнатурС ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. > Π’ основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для провСряСмых ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ πŸ‘‰ Java Portal

πŸ”Π’Π΅ΡΡ‚ΠΎΠ²ΠΎΠ΅ собСсСдованиС Π½Π° Middle Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π·Π°Π²Ρ‚Ρ€Π° 14 мая(ΡƒΠΆΠ΅ Π·Π°Π²Ρ‚Ρ€Π°!) Π² 19:00 ΠΏΠΎ мск ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ соб
πŸ”Π’Π΅ΡΡ‚ΠΎΠ²ΠΎΠ΅ собСсСдованиС Π½Π° Middle Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π·Π°Π²Ρ‚Ρ€Π° 14 мая(ΡƒΠΆΠ΅ Π·Π°Π²Ρ‚Ρ€Π°!) Π² 19:00 ΠΏΠΎ мск ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ собСсСдованиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° настоящСС ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ Π½Π° Middle Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Как это Π±ΡƒΠ΄Π΅Ρ‚: πŸ“‚ ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΈΠ½ ЛСсняк, Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ с большим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ провСдСния собСсов, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ вопросы ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ-Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΡ†Ρƒ πŸ“‚ ΠšΠΎΡΡ‚Ρ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ рСспондСнта, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Π΅Π³ΠΎ ΠΎΡ‚ вас ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ πŸ“‚ Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π°Ρ‚ΡŒ любой вопрос ΠšΠΎΡΡ‚Π΅ Π­Ρ‚ΠΎ бСсплатно. Π­Ρ„ΠΈΡ€ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… мСнторской ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‚ ШОРВКАВ для Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ свой Π³Ρ€Π΅ΠΉΠ΄, Π—ΠŸ ΠΈ ΠΏΡ€ΠΎΠΊΠ°Ρ‡Π°Ρ‚ΡŒ скиллы.  ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈ Π² нашСго Π±ΠΎΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° эфир β†’ @shortcut_sh_bot Π Π΅ΠΊΠ»Π°ΠΌΠ°. ООО "ШОРВКАВ", ИНН: 9731139396, erid: 2VtzqvXmgo6

Π’ Java ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠΌΠ΅Ρ‡Π΅Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ. И Ρ‚Π°ΠΊ Ρ…ΠΎΡ‚ΡŒ Π΄ΠΎ бСсконСчности. ПолСзно? Вряд Π»ΠΈ. Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ? Π’ΠΎΡ‡Π½ΠΎ Π½Π΅Ρ‚. Но ΠΊΠ°ΠΊ Ρ„Π°ΠΊΡ‚ β€” это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
String question;
to: be: or: not: that: is: the: question = "What?";

out.println(question);
> Код компилируСтся > ΠœΠ΅Ρ‚ΠΊΠΈ (to:, be:, or: ΠΈ Ρ‚.Π΄.) ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² break ΠΈΠ»ΠΈ continue Π’Ρ‹Π²ΠΎΠ΄:
What?
Иногда Java Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ с Π½Π°ΠΌΠΈ стихами 🫒 πŸ‘‰ Java Portal

Бпособы сравнСния строк Π² Java 1. == β†’ Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ адрСса Π² памяти 2. .equals() β†’ Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ содСрТимоС строк 3. .compareTo()
Бпособы сравнСния строк Π² Java 1. == β†’ Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ адрСса Π² памяти 2. .equals() β†’ Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ содСрТимоС строк 3. .compareTo() β†’ ЛСксикографичСскоС сравнСниС 4. .equalsIgnoreCase() β†’ Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° рСгистра > ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‚ΡƒΡ‚ 😊 πŸ‘‰ Java Portal

JDK 22 прСдставил класс java.text.ListFormat. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список строк Π² ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ Π²ΠΈΠ΄. НапримСр, Π²ΠΎΡ‚ такая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°:
final List<String> days = List.of("Mon", "Wed", "Fri");

void main() {
    print(Type.STANDARD);
    print(Type.OR);
    print(Type.UNIT);
}

private void print(Type type) {
    print(type, Style.FULL);
    print(type, Style.SHORT);
    print(type, Style.NARROW);
}

private void print(Type type, Style style) {
    var format = ListFormat.getInstance(Locale.US, type, style);
    var result = format.format(days);
    System.out.printf("%-8s + %-7s: %s%n", type, style, result);
}
Π’Ρ‹Π²ΠΎΠ΄:
STANDARD + FULL   : Mon, Wed, and Fri
STANDARD + SHORT  : Mon, Wed, & Fri
STANDARD + NARROW : Mon, Wed, Fri
OR       + FULL   : Mon, Wed, or Fri
OR       + SHORT  : Mon, Wed, or Fri
OR       + NARROW : Mon, Wed, or Fri
UNIT     + FULL   : Mon, Wed, Fri
UNIT     + SHORT  : Mon, Wed, Fri
UNIT     + NARROW : Mon Wed Fri
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ListFormat для Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ строки ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² список Π‘Ρ‚Π°Π²ΡŒ Π»Π°ΠΉΠΊ Ссли ΠΏΠΎΠ»Π΅Π·Π½ΠΎ πŸͺ‘ πŸ‘‰ Java Portal

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ руководство ΠΏΠΎ бСзопасности Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ πŸ”œ Π§ΠΈΡ‚Π°Ρ‚ΡŒ: ΠΊΠ»ΠΈΠΊ πŸ‘‰ Java Portal | #cΡ‚Π°Ρ‚ΡŒΡ
ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ руководство ΠΏΠΎ бСзопасности Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ πŸ”œ Π§ΠΈΡ‚Π°Ρ‚ΡŒ: ΠΊΠ»ΠΈΠΊ πŸ‘‰ Java Portal | #cΡ‚Π°Ρ‚ΡŒΡ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ DTO для запросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Никогда Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ сущности Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ β€” всСгда ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… Π² DTO ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ DTO для запросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Никогда Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ сущности Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ β€” всСгда ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… Π² DTO ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ 🀍 β€” Π±Π°Π·Π° πŸ‘‰ Java Portal

Вопросы для собСсСдования ΠΏΠΎ микросСрвисам с ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ 1. ΠšΠ°ΠΊΠΎΠ²Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ характСристики микросСрвисов? ΠžΡ‚Π²Π΅Ρ‚: > Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²
+1
Вопросы для собСсСдования ΠΏΠΎ микросСрвисам с ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ
1. ΠšΠ°ΠΊΠΎΠ²Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ характСристики микросСрвисов? ΠžΡ‚Π²Π΅Ρ‚: > Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ > БСрвисы Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° > ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° основС ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области (DDD) > Π›Ρ‘Π³ΠΊΠΎΠ΅ взаимодСйствиС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, REST, gRPC) > Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ сбоСв > Π£Π΄ΠΎΠ±Π½Ρ‹ для Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ доставки 2. Π§Π΅ΠΌ микросСрвисы ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹? ΠžΡ‚Π²Π΅Ρ‚: > ΠœΠΎΠ½ΠΎΠ»ΠΈΡ‚: Сдиная кодовая Π±Π°Π·Π°, Тёстко связанныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, слоТно ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. > ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹: мноТСство сСрвисов, слабо связанныС, Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‚ΡΡ нСзависимо. 3. ΠšΠ°ΠΊΠΎΠ²Ρ‹ основныС прСимущСства использования микросСрвисов? ΠžΡ‚Π²Π΅Ρ‚: > Π›ΡƒΡ‡ΡˆΠ°Ρ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ > Π‘ΠΎΠ»Π΅Π΅ быстроС Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ > НСзависимыС развёртывания > Π›ΡƒΡ‡ΡˆΠ°Ρ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ сбоям > Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ языки ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ 4. КакиС Π΅ΡΡ‚ΡŒ слоТности ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с микросСрвисами? ΠžΡ‚Π²Π΅Ρ‚: > Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния распрСдСлёнными систСмами > Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² сСти ΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡŽ > Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… > ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ > Π Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ оркСстрация 5. Как микросСрвисы ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ? ΠžΡ‚Π²Π΅Ρ‚: > Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎ: Ρ‡Π΅Ρ€Π΅Π· REST, gRPC > Асинхронно: Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ сообщСний (RabbitMQ, Kafka) 6. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ service discovery Π² микросСрвисах? ΠžΡ‚Π²Π΅Ρ‚: > Π­Ρ‚ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сСрвисы находят Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° Π² сСти. > ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ инструмСнты Π²Ρ€ΠΎΠ΄Π΅ Consul, Eureka, DNS Kubernetes. 7. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ API Gateway ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½? ΠžΡ‚Π²Π΅Ρ‚: > API Gateway β€” это Сдиная Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² систСму. Он ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ частоты запросов ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΎΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… сСрвисов. > ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: Kong, Zuul, NGINX, Spring Cloud Gateway. 8. Как Π² микросСрвисах ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ? ΠžΡ‚Π²Π΅Ρ‚: > ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвис ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ свою ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€œΠΎΠ΄Π½Π° Π±Π°Π·Π° Π½Π° сСрвис”). > Для согласованности ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ событийная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ саги. 9. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Saga? ΠžΡ‚Π²Π΅Ρ‚: > Saga β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. > Если ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ… Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ с ошибкой, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия для ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. 10. КакиС инструмСнты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ микросСрвисов? ΠžΡ‚Π²Π΅Ρ‚: > Π―Π·Ρ‹ΠΊΠΈ: Java (Spring Boot), Node.js, Go, Python > Π‘Π±ΠΎΡ€ΠΊΠ°: Maven, Gradle > ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ: Docker > ΠžΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΡ: Kubernetes
πŸ‘‰ Java Portal

Π’ΠΎΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ использования ΠΌΠ΅Ρ‚ΠΊΠΈ Π² Java:
void main() {
    do onlyOnce: {
        IO.println("Один Ρ€Π°Π·?");
        break onlyOnce;
    } while (true);
}
ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π±Π΅Π· ошибок. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚:
Один Ρ€Π°Π·?
Один Ρ€Π°Π·?
Один Ρ€Π°Π·?
Один Ρ€Π°Π·?
Один Ρ€Π°Π·?
...
Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ бСсконСчному Ρ†ΠΈΠΊΠ»Ρƒ πŸ™‚ πŸ‘‰ Java Portal

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π²ΠΎΡ‚ Π²Π°ΠΌ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°ΠΌ синхронизации ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² Java πŸ§‘β€πŸ’» synchronized Π±Π»ΠΎΠΊ/ΠΌΠ΅Ρ‚ΠΎΠ΄ -> ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ встроСнн
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π²ΠΎΡ‚ Π²Π°ΠΌ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°ΠΌ синхронизации ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² Java πŸ§‘β€πŸ’» synchronized Π±Π»ΠΎΠΊ/ΠΌΠ΅Ρ‚ΠΎΠ΄ -> ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° для обСспСчСния Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. ReentrantLock -> явная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° с Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ возмоТностями ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с synchronized. volatile- > Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ. АтомарныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (AtomicInteger ΠΈ Π΄Ρ€.) -> ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ. Semaphore -> управляСт доступом ΠΊ рСсурсу с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ числом Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. CountDownLatch -> позволяСт ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ нСскольким ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ…. CyclicBarrier -> позволяСт Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° Π΄ΠΎ продолТСния выполнСния. ReadWriteLock -> Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ мноТСствСнныС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ чтСния, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ запись. πŸ‘‰ Java Portal

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