
Всем привет! ?????
Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
Горячие JEPы
JEP 521 переводит режим сборки мусора по поколениям в GC Shenandoah из экспериментального статуса в полноценную продуктовую функцию, начиная с JDK 25. Это означает, что для активации режима больше не потребуется флаг -XX:+UnlockExperimentalVMOptions.
С момента представления в рамках JEP 404 режим прошел обширное тестирование и получил множество улучшений в стабильности и производительности.
JEP 510 направлен в JDK 25 и представляет API для функций деривации ключей (KDF). Ключи предназначены для безопасного получения дополнительных криптографических ключей на основе исходного секретного ключа и вспомогательных данных. Нововведение направлено на усиление защиты криптографических систем, особенно в контексте угроз, связанных с развитием квантовых вычислений.
JEP 512 Compact Source Files and Instance Main Methods направлен в JDK 25. Он позволяет писать компактные Java-программы с нестатическим методом main,
без явного объявления класса, с автоматическими импортами и новым утилитным классом IO для упрощенного ввода-вывода.
JEP 513 направлен в JDK 25 и предлагает изменения в конструкторах Java, позволяя размещать операторы до вызова super()
или this.
JEP улучшает гибкость и безопасность инициализации объектов, устраняя некоторые ограничения текущего синтаксиса. Удобный синтаксический сахар, о котором мы уже неоднократно писали, теперь можно потрогать в LTS-версии.
Свежие релизы
Spring Framework v7.0.0-M5 несет исправления ошибок, улучшения документации, обновления зависимостей и новые функции. Классы PropertyPlaceholderConfigurer и PreferencesPlaceholderConfigurer объявлены как deprecated, появилась поддержка Jackson 3.0 и многое другое.
LangChain4j 1.0.0 содержит модули, выпущенные ранее в качестве релиз-кандидатов: langchain4j-core; langchain4j; langchain4j-http-client; langchain4j-http-client-jdk и langchain4j-open-ai.
Изменения включают: переименование интерфейсов ChatLanguageModel в ChatModel и переименование StreamingChatLanguageModel в StreamingChatModel. Более подробную информацию об этом релизе можно найти в примечаниях к выпуску.
Релиз JHipster 8.11.0 обеспечивает поддержку JDK 24 и обновления зависимостей для Spring Boot 3.4.5, Gradle 8.14 и Node.js 22.15.0. Новые функции несут улучшения утилит безопасности и возможность установки User ID в JWT-токен.
Spring Boot 3.5.0 available now с новой версией Spring Boot. Из основного: улучшения структурированного логирования, новые аннотации для регистрации сервлетов и фильтров, автоконфигурации для бинов с фоновой инициализацией
Hibernate ORM 7.0.0.Final и его значимые нововведения: baseline поддержки сдвинулся на Java 17 и Jakarta Persistence 3.2, Hibernate Models заменило HCANN, soft-delete теперь можно основывать на временных метках и многое другое. Команда Spring АйО подготовила перевод материала, в котором рассказывается о фичах и изменениях нового выпуска.
Главные новости
Java 30 лет! 23 мая нашему любимому языку программирования исполнилось 30 лет. Поздравляем с юбилеем и желаем как можно дольше оставаться актуальным, органично добавлять новые крутые фичи и успешно избавляться от багов и устаревших решений! ?
Кстати, в честь этого события в IntelliJ IDEA добавили классную пасхалку ?

Стратегическое партнерство Kotlin и Spring. Команда Spring АйО перевела статью о стратегическом партнерстве между JetBrains и Spring, направленном на углубление интеграции Kotlin в экосистему Spring.
Ключевые инициативы включают повышение null-безопасности, разработку официальных обучающих материалов на Kotlin, внедрение быстрой рефлексии с помощью библиотеки kotlinx.reflect и создание новых DSL для конфигурации бинов. Эти шаги делают Kotlin еще привлекательнее для разработки серверных приложений на базе Spring.
Разработчики OpenJDK анонсировали JSON API для Java — пока только на уровне рассылки, но обещают скоро подготовить JEP или обновить JEP 198. Добавление JSON API видится крайне полезным, по крайней мере для простых проектов и скриптов. Ведь сейчас для работы с JSON необходимо подключать Jackson или Gson в зависимости. Иметь такую функциональность из коробки очень круто.
Redis is now available under the AGPLv3 open source license. Начиная с версии Redis 8 система снова доступна под открытой лицензией AGPLv3, одобренной OSI. Вместе с этим в Redis 8 интегрированы технологии Redis Stack, включая поддержку JSON и Time Series, а еще представлен новый тип данных — vector sets.
Интересные видео
Ahead of Time Computation - Inside Java Podcast 36 В подкасте обсуждают проект Lyden в JDK 24. Он раскрывает революционный подход к ускорению запуска и прогрева Java-приложений. Используя тренировочные прогоны (тесты/Canary), Lyden заранее загружает классы (JEP 483), связывает их, оптимизирует лямбды и кэширует профили методов на этапе сборки. Результат: до 70% ускорения старта для production без модификации кода приложения.
Structured Concurrency Revamp in Java 25 - Inside Java Newscast #91 В этом выпуске IJN Николай подробно рассказывает о том, как работает Structured Concurrency в Java 25. Можно узнать, в чем заключается эта концепция, для каких ситуаций она лучше всего подходит, какой API для ее реализации на текущий момент предоставляет Java и как он работает с виртуальными потоками и Scoped Values.

How Netflix Uses Java - 2025 Edition Рассказ от Netflix о том, как они используют Java, и о том, что изменилось с прошлого такого видео: миграция всех сервисов минимум на Java 17, перевод сервисов, написанных на других фреймворках, на Spring Boot, отказ от REST и использование GRPC + GraphQL, а также тестирование виртуальных потоков, переход Generational ZGC и многое другое.
Pattern Matching in Java: Better Code, Better APIs. Небольшой доклад о том, как сильно изменился синтаксис Java за последние несколько лет: Record, pattern matching, новый switch case блок и так далее. Синтаксис с их появлением действительно стал более лаконичным.

Константин Польщиков
Сам доклад рекомендую к просмотру, если по каким-то причинам пропустили все эти нововведения языка. А для тех, кто не пропустил, в конце доклада показали, как синтаксис может измениться в будущем.
Apache Maven Survival Guide ”Bring It On! - Mode”. Хороший доклад о том, как диагностировать проблемы, возникающие при сборке через maven. Автор показал, как посмотреть дерево зависимостей, неиспользуемые зависимости, используемые необъявленные зависимости, как профилировать сборки и как закомментированный файл может сильно повлиять на скорость компиляции. Показали самый важный плагин, который проигрывает музыку во время сборок, а еще — насколько Maven Daemon быстрее обычного Maven.
Java 24, Faster Than Ever — у доклада долгий сетап и на удивление мало чисел, это скорее быстрый обзор того, как Java оптимизируется. В начале рассказали про основные проекты в Java, которые влияют на производительность, затем поговорили про метрики, немного про то, как влияют различные платформы (Linux, Windows, Mac) и их архитектуры (arm, x64). Под конец автор рассказал про оптимизации JIT, а в самом-самом конце — про конкретные доработки, которые ускорили Java 24.
Полезные статьи
Mastering JVM Memory Troubleshooting - From OutOfMemoryErrors to Leaks — о диагностике и устранении проблем с памятью в Java-приложениях. Читатели узнают о разных видах ошибок: переполнении heap-а и метапространства, утечках собственной памяти, о методах их обнаружения и решения. Для опытных Java-разработчиков планету не откроет, а для остальных — отличный способ повторить, как траблшутить память.
Choco for Constraint Programming — интересная библиотека с инструментарием для решения задач в парадигме Constraint Programming. Такая парадигма подходит для задач, в которых нужно найти возможные значения для набора переменных, удовлетворяющих определенному набору условий. Например, решить головоломку судоку.
Strings Just Got Faster – Inside.java описывает улучшение производительности строк в JDK 25. Теперь метод String::hashCode может быть оптимизирован компилятором, используя свертывание констант (constant folding), что улучшает производительность строковых ключей в Map<String, V>.
Самое интересное — простота реализации. Для этого поле String.hash было просто помечено аннотацией @Stable, позволяющей JVM доверять его неизменности и оптимизировать вызовы. В результате время выполнения операций, таких как поиск по ключу в Map, сократилось более чем в восемь раз по сравнению с JDK 24.
Spring Data Ahead of Time Repositories — небольшая заметка о нововведении Spring Data 4.0. Теперь репозитории могут быть сгенерированы не в рантайме, а на этапе сборки приложения. Для включения фичи нужно прописать проперти spring.aot.repositories.enabled=true в вашей конфигурации. Такая оптимизация ускорит время старта, уменьшит потребление памяти и увеличит пропускную способность. Так как код такого репозитория генерируется не на лету, его можно будет посмотреть после сборки приложения.
Любопытные подкасты
Podlodka #422 – Spring Framework. Евгений Борисов рассказывает о LLM Spring ? В выпуске большой упор сделан на то, куда движется Spring как продукт. Есть ли у него перспективы в стремительно меняющимся мире? Останется ли вообще необходимость во фреймворках с распространением LLM?
Женя изложил свое видение по этим вопросам и сделал краткий обзор истории Spring, его устройства и философии. А в конце прорекламировал свой телеграм-канал, в котором уже заанонсил бесплатный курс по Spring AI.
Podlodka #423 – Groovy. Барух Садогурский рассказывает про Groovy ? Этот выпуск наполнен весельем и конспирологией. Барух вспоминает, как он познакомился с этим языком, как язык развивался и из-за каких фишек стал стандартом для написания скриптов. Почему даже сегодня Kotlin не смог вытеснить его из ниши Gradle-скриптов, хотя и взял у него очень много фич? Какие перспективы у Groovy в будущем? Можно ли начинать его хоронить вместе со Spring из-за распространения LLM?

Константин Максимов
Подлодка вернула мне мой 2017 )) Я тогда только вкатывался в Java и запоем смотрел доклады Жени и Баруха. Ностальгия. Спасибо ?
Podlodka #425 – Языки программирования будущего. Андрей Бреслав рассказывает о том, пора ли хоронить Kotlin вместе с Groovy и Spring из-за распространения LLM. Шутка. Почти ?
Андрей анонсировал новый язык программирования, заточенный под работу с LLM, над которым он сейчас работает. Проект называется Code Speak. Суть в том, что программирование сводится к написанию структурированной спецификации на английском языке. По этой спецификации и будет генерироваться код на том или ином языке программирования. Проект только на уровне концепта, но выглядит весьма перспективно. Это мы ждем! ?
Просто интересное
Халява уходит из программирования vs Халява приходит в программирование.
Эти два поста скорее дополняют друг друга, чем противоречат. В первом упор делается на то, какие скиллы и знания в ближайшее время обесценятся. Скоро недостаточно будет просто знать технологии и перекладывать спецификацию в код, потому что LLM будут делать это лучше. Критически важными становятся умения выстраивать архитектуру, знать Computer Science и уметь писать поддерживаемый код вне зависимости от языка.
Во втором посте предлагается более широкий взгляд на профессию. Автор классифицирует разработчиков по их отношению к работе. От «волчат», которые просто пришли за большими деньгами, не обладая никакими навыками, и до «бизнесменов», которые хотят выпускать прибыльные продукты. Тех, кто готов учиться и мотивирован делать свою работу качественно, LLM только усилят, они упростят многие задачи. Остальных они вытеснят из профессии. Так что для кого-то халява кончается, а для кого-то — только начинается ?
Understanding Java’s. Asynchronous Journey — обзор без тонкостей или интересной технической информации, но при этом интересно описано то, как эволюционировал механизм многопоточности в Java.
Джавовые события
26—30 мая прошла конференция Podlodka Java Crew.
21—23 мая прошла конференция Spring I/O 2025.
Опубликован Spring I/O 2025 Keynote, который раскрывает основные фичи грядущих Spring Framework 7 и Spring Boot 4.
Прислал: @IvanVakhrushev
Спасибо за прочтение! Ждем вашу обратную связь в комментариях. Увидимся через месяц ?
Присылайте материалы, если встретили что-то интересное, — опубликуем в следующем выпуске!
Jijiki
30 лет - юбилей )