Веб-версияОткрыть в Telegram

ПостРелиз Java 25

15 сентября 2025
J
Java: fill the gaps
Релиз Java 25 будет завтра. А сегодня - краткий обзор фич новой версии. Пропущу JEP в статусе Preview, хотя среди них много интересных вроде Stable Values или Structured Concurrency. Расскажу только о новшествах, которые обрели финальную форму. 🍑 JEP 519: Compact Object Headers Самая полезная фича в новом релизе. В чем суть. У каждого объекта есть заголовок, в котором хранится служебная информация для JVM. В Java 25 размер заголовка сократился с 12 байт до 8. Вроде немного, но в одном бенчмарке это сэкономило аж 22% памяти и 8% CPU. В реальных приложениях результат будет скромнее, но всё равно приятно. Включается флажком -XX:+UseCompactObjectHeaders, по умолчанию Compact Headers выключены. Следующие 2 фичи вряд ли потребуются каждый день, но знать о них стоит. 🍑 JEP 513: Flexible Constructor Bodies Писала о них отдельный пост, поэтому кратко - в конструкторах перед вызовом super можно добавить проверки аргументов: class Employee extends Person {   Employee(int age) {     if (age < 18)         throw new IllegalArgumentException(...);     super(age);   } } 🍑 JEP 506: Scoped Values ScopedValue - новый класс, чтобы передавать служебные данные между методами без явной передачи через параметры. Традиционно для этих целей используется ThreadLocal. Яркий пример - SecurityContext из Spring Security. Мы не тащим SecurityContext в каждый метод, но информация о текущем пользователе всегда под рукой. Scoped Value - это ThreadLocal Premium: 👑 Доступен только в пределах заданной области 👑 Значение неизменяемое 👑 Автоматически удаляется после использования 👑 Совместим с виртуальными потоками Остальные фичи довольно специфичны, опишу их кратко 🍑 JEP 510: Key Derivation Function API Квантовые компьютеры активно развиваются, они очень мощные и будут щёлкать текущие алгоритмы как орешки. Этот JEP - часть работ по внедрению в джаву Post-Quantum Cryptography - новых алгоритмов безопасности. 🍑 JEP 511: Импорт модулей Вместо import java.util.*; import java.util.function.*; import java.util.stream.*; Можно написать короче: import module java.base; Любая IDE управляет импортами за нас, поэтому полезность фичи под вопросом. Возможно, разработчики джавы не вспомнили названия модулей, когда подтверждали свои навыки на HH. Но это не точно. 🍑 JEP 503: Remove the 32-bit x86 Port Не учитывать в дальнейшей разработке 32х-битные процессоры 🍑 JEP 512: Compact Source Files and Instance Main Methods Более короткий Hello World: void main() {   IO.println("Hello, World!"); } 🍑 JEP 520: JFR Method Timing & Tracing, JEP 515: Ahead-of-Time Method Profiling, JEP 520: JFR Method Timing & Tracing Профайлинг стал точнее и стартует чуть быстрее. 🍑 JEP 521: Generational Shenandoah Сборщик мусора Shenandoah теперь делит объекты на старые и новые, раньше это была экспериментальная фича. Такой вот релиз будет завтра✨
114 · 13K ·

Рядом в ленте

JJava: fill the gapsКак подготовиться к собесам на Middle/Senior позицию и заполнить пробелы по самым горячим навыкам на рынке Найм сейчас сложный. Даже хорошему спецу сложно попасJJava: fill the gapsПоследний день скидки Ну что, вот и прошло 3 дня после анонса бота. Спасибо тем, кто поддерживал и тем, кто взял подписку❤️ Хочу ответить на вопрос, который зад
это сообщение
JJava: fill the gapsSpring и паттерн Singleton В мае я писала про групповой транс на собеседованиях при обсуждении SOLID. Люди на автомате обмениваются дежурными фразами, совершеннJJava: fill the gapsОпрос

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем