home.social

#jdk — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #jdk, aggregated by home.social.

  1. Why does handling keys in #Java still feel harder than it should? JEP 470 brings first-class #PEM encoding & decoding to the #JDK. Sebastian Hempel walks through the new #APIs and real-world trade-offs.

    Upgrade your security toolkit in #Java25: javapro.io/2026/02/17/pem-file

    @openjdk

  2. Why does handling keys in #Java still feel harder than it should? JEP 470 brings first-class #PEM encoding & decoding to the #JDK. Sebastian Hempel walks through the new #APIs and real-world trade-offs.

    Upgrade your security toolkit in #Java25: javapro.io/2026/02/17/pem-file

    @openjdk

  3. [Перевод] Java — быстрая. Ваш код может таким не быть

    Есть такие анти‑паттерны, которые выглядят нормально и даже проходят код‑ревью, но тихо убивают производительность в горячих местах: - Конкатенация строк в циклах - String.format() в горячем коде - Автобоксинг и так далее. И каждый подобный пролёт делает приложение чуть медленнее, и в какой-то момент это рискует превратиться в критическую массу, которая больно выстрелит на следующем спайке нагрузки. Если вы пишете на Java и у вас всё вроде работает, но под нагрузкой сервисы начинают задыхаться, в новом переводе от команды Spring АйО рассмотрим конкретные паттерны, на которые стоит посмотреть.

    habr.com/ru/companies/spring_a

    #java #kotlin #jvm #jdk #performance

  4. Что сейчас с Project Loom? Примеры и код

    Практика Project Loom: как включить preview Structured Concurrency в javac, Maven и Gradle, как использовать ScopedValue для request context и StructuredTaskScope для параллельных вызовов, joiner’ы, timeout и связка обеих фич в одном примере. Примеры под JDK 25+ Что же с Project Loom?

    habr.com/ru/articles/1038528/

    #Java #Project_Loom #Structured_Concurrency #virtual_threads #Scoped_Values #StructuredTaskScope #JDK #многопоточность #Maven #Gradle

  5. Что сейчас с Project Loom? Примеры и код

    Практика Project Loom: как включить preview Structured Concurrency в javac, Maven и Gradle, как использовать ScopedValue для request context и StructuredTaskScope для параллельных вызовов, joiner’ы, timeout и связка обеих фич в одном примере. Примеры под JDK 25+ Что же с Project Loom?

    habr.com/ru/articles/1038528/

    #Java #Project_Loom #Structured_Concurrency #virtual_threads #Scoped_Values #StructuredTaskScope #JDK #многопоточность #Maven #Gradle

  6. Что сейчас с Project Loom? Примеры и код

    Практика Project Loom: как включить preview Structured Concurrency в javac, Maven и Gradle, как использовать ScopedValue для request context и StructuredTaskScope для параллельных вызовов, joiner’ы, timeout и связка обеих фич в одном примере. Примеры под JDK 25+ Что же с Project Loom?

    habr.com/ru/articles/1038528/

    #Java #Project_Loom #Structured_Concurrency #virtual_threads #Scoped_Values #StructuredTaskScope #JDK #многопоточность #Maven #Gradle

  7. Что сейчас с Project Loom? Примеры и код

    Практика Project Loom: как включить preview Structured Concurrency в javac, Maven и Gradle, как использовать ScopedValue для request context и StructuredTaskScope для параллельных вызовов, joiner’ы, timeout и связка обеих фич в одном примере. Примеры под JDK 25+ Что же с Project Loom?

    habr.com/ru/articles/1038528/

    #Java #Project_Loom #Structured_Concurrency #virtual_threads #Scoped_Values #StructuredTaskScope #JDK #многопоточность #Maven #Gradle

  8. Java Digest #35

    Всем привет! 👋👋👋👋👋 Мы — Java-разработчики Т-Банка: Андрей , Арсений , Роман , Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом. В этом выпуске рассказываем, когда ждать релиз Java 27 и как Oracle планирует регулировать использование генеративного ИИ при написании кода. Посмотрим детальное интервью о Spring Framework 7 и Spring Boot 4 с самой командой создателей Spring. Почитаем, как безопасно работать с нативной памятью в многопоточной среде с помощью VarHandle. А еще изучим любопытный постмортем, посвященный расследованию раздувания памяти в контейнерах после перехода на JDK 17. Приятного чтения! Читать 35 выпуск

    habr.com/ru/companies/tbank/ar

    #java #jdk #jep #spring #springboot #hibernate

  9. Java Digest #35

    Всем привет! 👋👋👋👋👋 Мы — Java-разработчики Т-Банка: Андрей , Арсений , Роман , Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом. В этом выпуске рассказываем, когда ждать релиз Java 27 и как Oracle планирует регулировать использование генеративного ИИ при написании кода. Посмотрим детальное интервью о Spring Framework 7 и Spring Boot 4 с самой командой создателей Spring. Почитаем, как безопасно работать с нативной памятью в многопоточной среде с помощью VarHandle. А еще изучим любопытный постмортем, посвященный расследованию раздувания памяти в контейнерах после перехода на JDK 17. Приятного чтения! Читать 35 выпуск

    habr.com/ru/companies/tbank/ar

    #java #jdk #jep #spring #springboot #hibernate

  10. Java Digest #35

    Всем привет! 👋👋👋👋👋 Мы — Java-разработчики Т-Банка: Андрей , Арсений , Роман , Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом. В этом выпуске рассказываем, когда ждать релиз Java 27 и как Oracle планирует регулировать использование генеративного ИИ при написании кода. Посмотрим детальное интервью о Spring Framework 7 и Spring Boot 4 с самой командой создателей Spring. Почитаем, как безопасно работать с нативной памятью в многопоточной среде с помощью VarHandle. А еще изучим любопытный постмортем, посвященный расследованию раздувания памяти в контейнерах после перехода на JDK 17. Приятного чтения! Читать 35 выпуск

    habr.com/ru/companies/tbank/ar

    #java #jdk #jep #spring #springboot #hibernate

  11. Java Digest #35

    Всем привет! 👋👋👋👋👋 Мы — Java-разработчики Т-Банка: Андрей , Арсений , Роман , Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом. В этом выпуске рассказываем, когда ждать релиз Java 27 и как Oracle планирует регулировать использование генеративного ИИ при написании кода. Посмотрим детальное интервью о Spring Framework 7 и Spring Boot 4 с самой командой создателей Spring. Почитаем, как безопасно работать с нативной памятью в многопоточной среде с помощью VarHandle. А еще изучим любопытный постмортем, посвященный расследованию раздувания памяти в контейнерах после перехода на JDK 17. Приятного чтения! Читать 35 выпуск

    habr.com/ru/companies/tbank/ar

    #java #jdk #jep #spring #springboot #hibernate

  12. [Перевод] Самый простой способ устроить утечку памяти в Java

    В новом переводе от команды Spring АйО рассмотрим утечки памяти в Java. Не секрет, что GC освобождает только недостижимые объекты. Утечка в Java начинается там, где объект уже не нужен, но на него все еще есть цепочка ссылок от живого потока. Симптомы обычно одинаковые: куча растет, GC срабатывает чаще, паузы увеличиваются, финал - java.lang.OutOfMemoryError: Java heap space . В целом вывод такой, что нужно смотреть график heap в VisualVM/JVisualVM/JConsole, снимать heap dump (jmap), в Eclipse MAT запускать Leak Suspects и проверять цепочки удерживающих ссылок.

    habr.com/ru/companies/spring_a

    #java #kotlin #performance #spring #jdk #gc #spring_boot #spring_framework #springboot

  13. [Перевод] Самый простой способ устроить утечку памяти в Java

    В новом переводе от команды Spring АйО рассмотрим утечки памяти в Java. Не секрет, что GC освобождает только недостижимые объекты. Утечка в Java начинается там, где объект уже не нужен, но на него все еще есть цепочка ссылок от живого потока. Симптомы обычно одинаковые: куча растет, GC срабатывает чаще, паузы увеличиваются, финал - java.lang.OutOfMemoryError: Java heap space . В целом вывод такой, что нужно смотреть график heap в VisualVM/JVisualVM/JConsole, снимать heap dump (jmap), в Eclipse MAT запускать Leak Suspects и проверять цепочки удерживающих ссылок.

    habr.com/ru/companies/spring_a

    #java #kotlin #performance #spring #jdk #gc #spring_boot #spring_framework #springboot

  14. [Перевод] Самый простой способ устроить утечку памяти в Java

    В новом переводе от команды Spring АйО рассмотрим утечки памяти в Java. Не секрет, что GC освобождает только недостижимые объекты. Утечка в Java начинается там, где объект уже не нужен, но на него все еще есть цепочка ссылок от живого потока. Симптомы обычно одинаковые: куча растет, GC срабатывает чаще, паузы увеличиваются, финал - java.lang.OutOfMemoryError: Java heap space . В целом вывод такой, что нужно смотреть график heap в VisualVM/JVisualVM/JConsole, снимать heap dump (jmap), в Eclipse MAT запускать Leak Suspects и проверять цепочки удерживающих ссылок.

    habr.com/ru/companies/spring_a

    #java #kotlin #performance #spring #jdk #gc #spring_boot #spring_framework #springboot

  15. [Перевод] Самый простой способ устроить утечку памяти в Java

    В новом переводе от команды Spring АйО рассмотрим утечки памяти в Java. Не секрет, что GC освобождает только недостижимые объекты. Утечка в Java начинается там, где объект уже не нужен, но на него все еще есть цепочка ссылок от живого потока. Симптомы обычно одинаковые: куча растет, GC срабатывает чаще, паузы увеличиваются, финал - java.lang.OutOfMemoryError: Java heap space . В целом вывод такой, что нужно смотреть график heap в VisualVM/JVisualVM/JConsole, снимать heap dump (jmap), в Eclipse MAT запускать Leak Suspects и проверять цепочки удерживающих ссылок.

    habr.com/ru/companies/spring_a

    #java #kotlin #performance #spring #jdk #gc #spring_boot #spring_framework #springboot

  16. Kotlin без «воды»: новая книга для тех, кто хочет изучить язык на практике

    Некоторые языки программирования начинают по-настоящему ценить тогда, когда разработчик замечает: значительная часть усилий уходит на решение задачи, а не на борьбу с инструментом. Экосистема Java — хороший пример такого накопленного трения. Она несет в себе наследие решений, принятых десятилетия назад, притом они не обязательно плохие — просто раньше не учитывались те сценарии, которые сегодня стали повседневностью: интенсивная работа с асинхронностью, быстрые итерации, требования к читаемости и поддерживаемости кода. Kotlin возник как попытка аккуратно убрать часть этого трения, не разрушая существующую инфраструктуру. Речь здесь идет о другом уровне комфорта при решении привычных задач — от базовых конструкций до построения полноценных сервисов. Именно этому посвящена только что вышедшая в издательстве «БХВ» книга Елены Ван Энгелен – Масловой « Что внутри?

    habr.com/ru/companies/bhv_publ

    #kotlin #android #java #jdk #мобильная_разработка #бекенд

  17. Kotlin без «воды»: новая книга для тех, кто хочет изучить язык на практике

    Некоторые языки программирования начинают по-настоящему ценить тогда, когда разработчик замечает: значительная часть усилий уходит на решение задачи, а не на борьбу с инструментом. Экосистема Java — хороший пример такого накопленного трения. Она несет в себе наследие решений, принятых десятилетия назад, притом они не обязательно плохие — просто раньше не учитывались те сценарии, которые сегодня стали повседневностью: интенсивная работа с асинхронностью, быстрые итерации, требования к читаемости и поддерживаемости кода. Kotlin возник как попытка аккуратно убрать часть этого трения, не разрушая существующую инфраструктуру. Речь здесь идет о другом уровне комфорта при решении привычных задач — от базовых конструкций до построения полноценных сервисов. Именно этому посвящена только что вышедшая в издательстве «БХВ» книга Елены Ван Энгелен – Масловой « Что внутри?

    habr.com/ru/companies/bhv_publ

    #kotlin #android #java #jdk #мобильная_разработка #бекенд

  18. Kotlin без «воды»: новая книга для тех, кто хочет изучить язык на практике

    Некоторые языки программирования начинают по-настоящему ценить тогда, когда разработчик замечает: значительная часть усилий уходит на решение задачи, а не на борьбу с инструментом. Экосистема Java — хороший пример такого накопленного трения. Она несет в себе наследие решений, принятых десятилетия назад, притом они не обязательно плохие — просто раньше не учитывались те сценарии, которые сегодня стали повседневностью: интенсивная работа с асинхронностью, быстрые итерации, требования к читаемости и поддерживаемости кода. Kotlin возник как попытка аккуратно убрать часть этого трения, не разрушая существующую инфраструктуру. Речь здесь идет о другом уровне комфорта при решении привычных задач — от базовых конструкций до построения полноценных сервисов. Именно этому посвящена только что вышедшая в издательстве «БХВ» книга Елены Ван Энгелен – Масловой « Что внутри?

    habr.com/ru/companies/bhv_publ

    #kotlin #android #java #jdk #мобильная_разработка #бекенд

  19. Kotlin без «воды»: новая книга для тех, кто хочет изучить язык на практике

    Некоторые языки программирования начинают по-настоящему ценить тогда, когда разработчик замечает: значительная часть усилий уходит на решение задачи, а не на борьбу с инструментом. Экосистема Java — хороший пример такого накопленного трения. Она несет в себе наследие решений, принятых десятилетия назад, притом они не обязательно плохие — просто раньше не учитывались те сценарии, которые сегодня стали повседневностью: интенсивная работа с асинхронностью, быстрые итерации, требования к читаемости и поддерживаемости кода. Kotlin возник как попытка аккуратно убрать часть этого трения, не разрушая существующую инфраструктуру. Речь здесь идет о другом уровне комфорта при решении привычных задач — от базовых конструкций до построения полноценных сервисов. Именно этому посвящена только что вышедшая в издательстве «БХВ» книга Елены Ван Энгелен – Масловой « Что внутри?

    habr.com/ru/companies/bhv_publ

    #kotlin #android #java #jdk #мобильная_разработка #бекенд

  20. Java Digest # 34

    В этом выпуске мы узнаем, как Java 26 меняет правила игры с десятком новых JEP - от долгожданного шестого превью Structured Concurrency до похорон апплетов и поддержки HTTP/3. Увидим, как IntelliJ IDEA становится умнее с ИИ-агентами, Spring Debugger с отображением бинов и поддержкой Git worktrees. Обсудим Spring AOT, версионирование API в Spring Boot 4.0. Плюс, как всегда, свежие релизы Spring, Gradle, Micronaut, LangChain4j и бенчмарки Quarkus против Spring. Будет интересно!

    habr.com/ru/companies/tbank/ar

    #java #spring #jdk #java_26 #intellij_idea

  21. Java Digest # 34

    В этом выпуске мы узнаем, как Java 26 меняет правила игры с десятком новых JEP - от долгожданного шестого превью Structured Concurrency до похорон апплетов и поддержки HTTP/3. Увидим, как IntelliJ IDEA становится умнее с ИИ-агентами, Spring Debugger с отображением бинов и поддержкой Git worktrees. Обсудим Spring AOT, версионирование API в Spring Boot 4.0. Плюс, как всегда, свежие релизы Spring, Gradle, Micronaut, LangChain4j и бенчмарки Quarkus против Spring. Будет интересно!

    habr.com/ru/companies/tbank/ar

    #java #spring #jdk #java_26 #intellij_idea

  22. Java Digest # 34

    В этом выпуске мы узнаем, как Java 26 меняет правила игры с десятком новых JEP - от долгожданного шестого превью Structured Concurrency до похорон апплетов и поддержки HTTP/3. Увидим, как IntelliJ IDEA становится умнее с ИИ-агентами, Spring Debugger с отображением бинов и поддержкой Git worktrees. Обсудим Spring AOT, версионирование API в Spring Boot 4.0. Плюс, как всегда, свежие релизы Spring, Gradle, Micronaut, LangChain4j и бенчмарки Quarkus против Spring. Будет интересно!

    habr.com/ru/companies/tbank/ar

    #java #spring #jdk #java_26 #intellij_idea

  23. Java Digest # 34

    В этом выпуске мы узнаем, как Java 26 меняет правила игры с десятком новых JEP - от долгожданного шестого превью Structured Concurrency до похорон апплетов и поддержки HTTP/3. Увидим, как IntelliJ IDEA становится умнее с ИИ-агентами, Spring Debugger с отображением бинов и поддержкой Git worktrees. Обсудим Spring AOT, версионирование API в Spring Boot 4.0. Плюс, как всегда, свежие релизы Spring, Gradle, Micronaut, LangChain4j и бенчмарки Quarkus против Spring. Будет интересно!

    habr.com/ru/companies/tbank/ar

    #java #spring #jdk #java_26 #intellij_idea

  24. [Перевод] Раздувание памяти JDK 17 в контейнерах: разбор инцидента

    В новом переводе от команды Spring АйО разберем тему раздувания памяти в JDK 17. Апгрейд микросервисов с JDK 8 на JDK 17 прошел dev и QA спокойно, но в проде через 2-3 часа все начало падать. Утилизация памяти выросла в 4 раза, контейнеры стали ловить OOMKill и перезапускаться, Uptime SLA просел, массовый инцидент. Раньше JVM использовала около 50% памяти контейнера и обслуживала ~400 потоков. После релиза стало 95-100% и 1600+ соответственно. При этом heap выглядел нормально, около Xmx, а раздувалась нативная память: ~800 MB -> 3,4-3,6 GB. Виноваты несколько эффектов, которые в контейнерах усиливаются: JVM начала создавать намного больше потоков, OS стала выделять JVM гораздо больше, а дефолтный GC в JDK 17 добавил накладные расходы. Всё это из-за простого бага в JDK, который при миграции утащил за собой весь production.

    habr.com/ru/companies/spring_a

    #jdk_17 #jdk #java #performance #gc #kot #memory #spring #spring_boot #spring_framework

  25. [Перевод] Раздувание памяти JDK 17 в контейнерах: разбор инцидента

    В новом переводе от команды Spring АйО разберем тему раздувания памяти в JDK 17. Апгрейд микросервисов с JDK 8 на JDK 17 прошел dev и QA спокойно, но в проде через 2-3 часа все начало падать. Утилизация памяти выросла в 4 раза, контейнеры стали ловить OOMKill и перезапускаться, Uptime SLA просел, массовый инцидент. Раньше JVM использовала около 50% памяти контейнера и обслуживала ~400 потоков. После релиза стало 95-100% и 1600+ соответственно. При этом heap выглядел нормально, около Xmx, а раздувалась нативная память: ~800 MB -> 3,4-3,6 GB. Виноваты несколько эффектов, которые в контейнерах усиливаются: JVM начала создавать намного больше потоков, OS стала выделять JVM гораздо больше, а дефолтный GC в JDK 17 добавил накладные расходы. Всё это из-за простого бага в JDK, который при миграции утащил за собой весь production.

    habr.com/ru/companies/spring_a

    #jdk_17 #jdk #java #performance #gc #kot #memory #spring #spring_boot #spring_framework

  26. [Перевод] Раздувание памяти JDK 17 в контейнерах: разбор инцидента

    В новом переводе от команды Spring АйО разберем тему раздувания памяти в JDK 17. Апгрейд микросервисов с JDK 8 на JDK 17 прошел dev и QA спокойно, но в проде через 2-3 часа все начало падать. Утилизация памяти выросла в 4 раза, контейнеры стали ловить OOMKill и перезапускаться, Uptime SLA просел, массовый инцидент. Раньше JVM использовала около 50% памяти контейнера и обслуживала ~400 потоков. После релиза стало 95-100% и 1600+ соответственно. При этом heap выглядел нормально, около Xmx, а раздувалась нативная память: ~800 MB -> 3,4-3,6 GB. Виноваты несколько эффектов, которые в контейнерах усиливаются: JVM начала создавать намного больше потоков, OS стала выделять JVM гораздо больше, а дефолтный GC в JDK 17 добавил накладные расходы. Всё это из-за простого бага в JDK, который при миграции утащил за собой весь production.

    habr.com/ru/companies/spring_a

    #jdk_17 #jdk #java #performance #gc #kot #memory #spring #spring_boot #spring_framework

  27. [Перевод] Раздувание памяти JDK 17 в контейнерах: разбор инцидента

    В новом переводе от команды Spring АйО разберем тему раздувания памяти в JDK 17. Апгрейд микросервисов с JDK 8 на JDK 17 прошел dev и QA спокойно, но в проде через 2-3 часа все начало падать. Утилизация памяти выросла в 4 раза, контейнеры стали ловить OOMKill и перезапускаться, Uptime SLA просел, массовый инцидент. Раньше JVM использовала около 50% памяти контейнера и обслуживала ~400 потоков. После релиза стало 95-100% и 1600+ соответственно. При этом heap выглядел нормально, около Xmx, а раздувалась нативная память: ~800 MB -> 3,4-3,6 GB. Виноваты несколько эффектов, которые в контейнерах усиливаются: JVM начала создавать намного больше потоков, OS стала выделять JVM гораздо больше, а дефолтный GC в JDK 17 добавил накладные расходы. Всё это из-за простого бага в JDK, который при миграции утащил за собой весь production.

    habr.com/ru/companies/spring_a

    #jdk_17 #jdk #java #performance #gc #kot #memory #spring #spring_boot #spring_framework

  28. For the umpteenth 😩 time I have to implement

    @FunctionalInterface
    public interface ThrowingFunction<IN, OUT, EX extends Exception> {
    public OUT apply(IN in) throws EX;
    }

    because the JDK decided that the functional interfaces provided don't provide explainers (aka Exception).

    #Java #jdk