После шестимесячного периода разработки компания Oracle представила новую версию платформы Java SE 26 (Java Platform, Standard Edition 26). Эталонной реализацией данной версии выступает проект OpenJDK. Несмотря на удаление некоторых устаревших возможностей, Java SE 26 сохраняет обратную совместимость с предыдущими релизами платформы, что позволяет большинству ранее написанных Java-проектов без изменений работать под управлением новой версии.
Готовые сборки Java SE 26 (JDK, JRE и Server JRE) доступны для различных операционных систем: Linux (x86_64, AArch64), Windows (x86_64) и macOS (x86_64, AArch64). Открытая реализация Java SE 26, разработанная в рамках проекта OpenJDK, распространяется под лицензией GPLv2 с исключениями GNU ClassPath, что позволяет динамически связывать её с коммерческими продуктами.
Java SE 26 относится к категории релизов с обычным сроком поддержки. Обновления для данной версии будут выпускаться до следующего релиза. Для длительной поддержки (LTS) рекомендуется использовать Java SE 25, 21 или 17, обновления для которых будут доступны до 2033, 2031 и 2029 годов соответственно (общедоступные — до сентября 2030, 2028 и 2026 годов). Расширенная поддержка LTS-ветки Java SE 8 продлится до 2030 года, а Java SE 11 — до 2032 года.
Среди ключевых изменений в Java SE 26:
Реализован вывод предупреждения при использовании глубокой рефлексии для изменения полей, помеченных как "final". Удалён API Applet (java.applet.Applet*, javax.swing.JApplet), который ранее применялся для запуска Java-приложений в браузере. Теперь поддерживается использование предварительно формируемого кэша (AOT - ahead-of-time) с любыми сборщиками мусора, включая ZGC (Z Garbage Collector).
API HTTP Client теперь поддерживает протокол HTTP/3. Производительность сборщика мусора G1 была улучшена за счёт сокращения блокировок для синхронизации потоков приложения с потоками сборщика мусора. Представлен второй предварительный вариант API для кодирования и декодирования объектов с криптографическими ключами, сертификатами и списками отозванных сертификатов в формате PEM (Privacy-Enhanced Mail).
Также добавлен шестой предварительный вариант API для структурированного параллелизма (Structured Concurrency), который упрощает разработку многопоточных приложений, обрабатывая несколько задач, выполняемых в разных потоках, как единый блок. Введён второй предварительный вариант API Lazy Constants для работы с объектами, содержащими неизменяемые данные и обрабатываемыми JVM как константы.
В механизме сопоставления с образцом добавлен четвёртый предварительный вариант возможности использования примитивных типов (int, byte, char и другие базовые типы) во всех видах шаблонов, в операторе "instanceof" и в блоках "switch". Предложена одиннадцатая тестовая реализация API Vector для выполнения векторных вычислений с использованием векторных инструкций процессоров x86_64 и AArch64, что позволяет одновременно применять операции к нескольким значениям (SIMD).
Кроме того, Oracle объявила о проекте Detroit, который будет развиваться в составе OpenJDK. Цель проекта — улучшение переносимости между Java, JavaScript и Python. В рамках этого проекта планируется предоставить возможность встраивания JavaScript-движка V8 и интерпретатора CPython в процесс JVM. Ранее Oracle уже работала над JavaScript-движком Nashorn, но проект был свёрнут из-за сложностей с поддержкой отдельной реализации JavaScript, когда основная экосистема была связана с движком V8.
Также стоит отметить публикацию обновления платформы для создания приложений с графическим интерфейсом JavaFX 26. В ближайшие часы ожидается выпуск универсальной виртуальной машины GraalVM 26, поддерживающей запуск приложений на JavaScript (Node.js), Python, Ruby, R, а также любых языках для JVM (Java, Scala, Clojure, Kotlin) и языках, для которых может формироваться биткод LLVM (C, C++, Rust).