[Перевод] Перевополщение Stable Values в JDK 26

В новом переводе от команды Spring АйО рассмотрим ленивую инициализацию в Java , которая почти всегда значит: поле сначала null , потом double-checked locking, volatile, синхронизация. Ошибиться легко, а final не поставить. Итог - код хрупче и JVM хуже делает constant folding. В JDK 26 (preview, JEP 526) добавили LazyConstant<T> : final поле, рецепт вычисления через Supplier , значение берёте login.get() . Supplier выполнится при первом get и только один раз успешно, даже при гонке потоков. Кроме этого значение помечается как @Stable - JVM может считать его константой и агрессивнее оптимизировать. Граничные случаи: null нельзя; не сериализуется; исключение из Supplier пробросится и следующая попытка снова пересчитает; equals у LazyConstant - только identity. Для 1:n есть List.ofLazy и Map.ofLazy : элементы/значения считаются по индексу/ключу по требованию и кэшируются.

https://habr.com/ru/companies/spring_aio/articles/1042294/

#java #kotlin #jdk #jdk_26 #perf #performance #performance_optimization

Перевополщение Stable Values в JDK 26

Ленивая инициализация полей в Java чревата ошибками и подрывает свёртывание констант (он же constant folding). В JDK 26 появился JEP 526, который в режиме preview предлагает LazyConstant — тип, лениво...

Хабр

Java Digest — Новогодний спецвыпуск

Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей , Арсений , Роман , Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

https://habr.com/ru/companies/tbank/articles/983164/

#java #java_25 #spring #spring_boot #spring_framework #quarkus #idea #jdk #jdk_26 #lilliput

Java Digest — Новогодний спецвыпуск

Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей , Арсений , Роман , Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся...

Хабр

[Перевод] JEP 401: Value классы и объекты

Команда проекта Valhalla выпустила early-access сборку JDK с полной реализацией JEP 401 — value-классы и объекты теперь можно попробовать в действии! В новом переводе от команды Spring АйО — примеры использования, объяснение концепции, сравнение производительности с обычными объектами и практические советы для разработчиков.

https://habr.com/ru/companies/spring_aio/articles/960880/

#java #kotlin #jvm #jdk #jep_401 #jdk_26

JEP 401: Value классы и объекты

Команда проекта Valhalla выпустила early-access сборку JDK с полной реализацией JEP 401 — value-классы и объекты теперь можно попробовать в действии! В новом переводе от команды Spring АйО — примеры...

Хабр

[Перевод] Поддержка HTTP/3 в Java: что нового в JDK 26 и как это использовать

В JDK 26 появилась долгожданная поддержка HTTP/3 в стандартном классе HttpClient . Хотя само API почти не изменилось, теперь можно явно указывать предпочтение использования HTTP/3 как на уровне клиента, так и на уровне запроса. В новом переводе от команды Spring АйО подробно описывается, как работает выбор версии HTTP, что такое Http3DiscoveryMode, как принудительно использовать HTTP/3 и как HttpClient "обучается" на основе заголовков alt-svc .

https://habr.com/ru/companies/spring_aio/articles/959850/

#java #kotlin #http #http2 #http_3 #http_30 #jdk #jdk_26 #spring #spring_boot

Поддержка HTTP/3 в Java: что нового в JDK 26 и как это использовать

В JDK 26 появилась долгожданная поддержка HTTP/3 в стандартном классе HttpClient . Хотя само API почти не изменилось, теперь можно явно указывать предпочтение использования HTTP/3 как на уровне...

Хабр