Вышла Java 24
Вышла общедоступная версия Java 24. В этот релиз попало около 2700 закрытых задач и 24 JEP'а. Release Notes можно посмотреть здесь. Полный список изменений API – здесь.
Java 24 не является LTS-релизом, и у неё будут выходить обновления только полгода (до сентября 2025 года).
Скачать JDK 24 можно по этим ссылкам:
Рассмотрим все JEP'ы, которые попали в Java 24.
Примитивные типы в паттернах, instanceof и switch, которые появились в Java 23 в режиме preview, остаются на второе preview без изменений:
Проверять можно также и то, попадают ли значения в диапазон типа:
В примерах выше 42 попадает в диапазон byte ([-128; 127]), а 3.0 без потери точности приводится к int. Таким образом, это позволит более безопасно приводить одни числовые типы к другим, не прибегая к ручным проверкам диапазонов.
Подобные проверки могут быть полезны и в паттернах записей:
Если до Java 23/24 типы выражений-селекторов в switch могли быть только int, short, byte и char и для них поддерживались только константные ветки (case 3 и т.п.), то сейчас поддерживаются все примитивные типы и ветки могут быть паттернами:
В Java 25 возможно будет третье preview этой фичи.
Module Import Declarations, которые появились в Java 23 в режиме preview, перешли во второе превью со следующими двумя изменениями.
Во-первых, при импорте модуля-агрегатора java.se, теперь импортируются и классы java.base. В Java 23 при импорте java.se приходилось отдельно импортировать java.base, чтобы пользоваться базовыми классами Java, что выглядело странно:
В Java 24 теперь же это не нужно:
Такое стало возможно благодаря тому, что в Java 24 разрешили модулям делать requires transitive java.base (раньше было нельзя, поскольку считалось, что любой модуль всегда и так зависит от java.base неявно):
В
Читать на habr.com
