home.social

#jdk — Public Fediverse posts

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

  1. 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

  2. [Перевод] Самый простой способ устроить утечку памяти в 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

  3. [Перевод] Самый простой способ устроить утечку памяти в 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

  4. [Перевод] Самый простой способ устроить утечку памяти в 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

  5. [Перевод] Самый простой способ устроить утечку памяти в 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

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

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

    habr.com/ru/companies/bhv_publ

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

  7. 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

  8. [Перевод] Раздувание памяти 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

  9. [Перевод] Раздувание памяти 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

  10. [Перевод] Раздувание памяти 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

  11. [Перевод] Раздувание памяти 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

  12. 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

  13. Ever wonder what your #JVM really sees? Most #Java devs ship code every day without knowing what the bytecode actually looks like — or how the #JDK tools interpret it.
    Mahendra Rao breaks it down with javap & reveals what happens behind the curtain.

    Read: javapro.io/2025/11/27/behind-t

  14. Still converting PEM files into Java keystores just to make Java happy? #JDK 25 finally changes that. Sebastian Hempel explains how JEP 470 lets #Java work with PEM keys directly.

    Cut the glue code and simplify key handling: javapro.io/2026/02/17/pem-file

    #Security @openjdk @Oracle

  15. Oracle、「Java 26」を発表 ~起動速度の改善やHTTP/3対応などを盛り込む/4つのプレビューと1つのインキュベーターを含む、10のJEPが実装
    forest.watch.impress.co.jp/doc

    #forest_watch_impress #Java #JDK #プログラミング #その他

  16. Declarative pipelines. Lazy evaluation. Batched #Gatherers. #JavaStreams evolved into a flexible data processing framework. Mihaela Gheorghe-Roman offers a practical timeline from #Java 8 to 24—plus common pitfalls to avoid: javapro.io/2025/11/13/java-str

    @openjdk #Java25 #JDK24 #JDK

  17. JDK 26 Security Enhancements: seanjmullan.org/blog/2026/03/1

    Highlights of this release include a second preview of the PEM API, API support for Hybrid Public Key Encryption, and signed JAR support for the post-quantum ML-DSA algorithm.

    #jdk #java #security #crypto #jdk26 #openjdk

  18. Установка Java за 5 минут: JDK 21 или 25 — что выбрать новичку в 2026 году

    Уже вышла Java 25 — самая свежая версия, которую все хотят попробовать. Но ставить ли её новичку? Или взять проверенную Java 21 LTS? В этом гайде — пошаговая установка Java на Windows с картинками, разбор различий между версиями, настройка JAVA_HOME и PATH ориентирован для начинающих разработчиков, изучающих Java

    habr.com/ru/companies/otus/art

    #java #установка_java #jdk #java_25 #java_21 #java_для_начинающих #настройка_окружения #windows #macos

  19. Kürzlich habe ich einen Artikel gelesen, in dem es um Fragen in einem Vorstellungsgespräch als Java-Entwickler ging. Es wurden einige Fragen vorgestellt und die These aufgestellt, dass die meisten Bewerber diese Fragen nicht beantworten können. Aus diesem Grund möchte ich ...

    magicmarcy.de/java-interview-f

    #Java-Interview #Grundlagen #JDK #JRE #abstrakte_Klasse #Interface #final #finally #finalise #stack #heap #private #protected #super #Garbage_Collector #GC

  20. Kürzlich habe ich einen Artikel gelesen, in dem es um Fragen in einem Vorstellungsgespräch als Java-Entwickler ging. Es wurden einige Fragen vorgestellt und die These aufgestellt, dass die meisten Bewerber diese Fragen nicht beantworten können. Aus diesem Grund möchte ich ...

    magicmarcy.de/java-interview-f

    #Java-Interview #Grundlagen #JDK #JRE #abstrakte_Klasse #Interface #final #finally #finalise #stack #heap #private #protected #super #Garbage_Collector #GC

  21. Kürzlich habe ich einen Artikel gelesen, in dem es um Fragen in einem Vorstellungsgespräch als Java-Entwickler ging. Es wurden einige Fragen vorgestellt und die These aufgestellt, dass die meisten Bewerber diese Fragen nicht beantworten können. Aus diesem Grund möchte ich ...

    magicmarcy.de/java-interview-f

    #Java-Interview #Grundlagen #JDK #JRE #abstrakte_Klasse #Interface #final #finally #finalise #stack #heap #private #protected #super #Garbage_Collector #GC

  22. 🚀 v.1.1 was released

    🦾 New automatic file reviewer

    🎛️ Short aliases for in configuration
    All configuration values can now also be overwritten via environment variables

    github.com/mkutz/ApproveJ/rele

  23. 🚀 #ApproveJ v.1.1 was released

    🦾 New automatic file reviewer

    🎛️ Short aliases for in configuration
    All configuration values can now also be overwritten via environment variables

    github.com/mkutz/ApproveJ/rele

    #approvaltesting #snapshottesting #java #jdk

  24. 🚀 #ApproveJ v.1.1 was released

    🦾 New automatic file reviewer

    🎛️ Short aliases for in configuration
    All configuration values can now also be overwritten via environment variables

    github.com/mkutz/ApproveJ/rele

    #approvaltesting #snapshottesting #java #jdk

  25. 🚀 #ApproveJ v.1.1 was released

    🦾 New automatic file reviewer

    🎛️ Short aliases for in configuration
    All configuration values can now also be overwritten via environment variables

    github.com/mkutz/ApproveJ/rele

    #approvaltesting #snapshottesting #java #jdk

  26. 🚀 #ApproveJ v.1.1 was released

    🦾 New automatic file reviewer

    🎛️ Short aliases for in configuration
    All configuration values can now also be overwritten via environment variables

    github.com/mkutz/ApproveJ/rele

    #approvaltesting #snapshottesting #java #jdk

  27. @magicmarcy
    Ich hatte das letzte Mal vor 12 Jahren meine Finger zum Coden an der Tastatur.
    Bei den ersten drei Fragen musste ich schmunzeln... und dann konnte ich nur noch eine einzige Frage beantworten... halbwegs.
    Ich wusste bei allem noch was, aber hätte nicht mehr in die Details gehen können.

    Hach, waren das Zeiten! 🥲

    #Java #Grundlagen #JDK #JRE #abstrakte_Klasse #Interface #final #finally #finalise #stack #heap #private #protected #super #Garbage_Collector #GC