JAVA 9 (aka jdk 1.9) — это основной выпуск разработки языка программирования JAVA. Его первоначальная версия была выпущена 21 сентября 2017 года. Основные цели выпуска Java 9 —
-
Сделать платформу JDK и Java Standard Edition модульной в том смысле, что она может быть хорошо масштабирована до небольших вычислительных устройств.
-
Повысить общую безопасность JDK и Java-реализаций.
-
Упростить процесс сборки и сопровождения библиотек кода Java и больших приложений для платформ JAVA SE и EE.
-
Разработать и внедрить стандартную модульную систему для платформы Java, которую можно легко применять как на платформе, так и в JDK.
Сделать платформу JDK и Java Standard Edition модульной в том смысле, что она может быть хорошо масштабирована до небольших вычислительных устройств.
Повысить общую безопасность JDK и Java-реализаций.
Упростить процесс сборки и сопровождения библиотек кода Java и больших приложений для платформ JAVA SE и EE.
Разработать и внедрить стандартную модульную систему для платформы Java, которую можно легко применять как на платформе, так и в JDK.
Новые возможности
В Java 8 добавлено более 90 улучшений, наиболее значимые из которых перечислены ниже:
Модуль — новый вид компонента программирования Java, представленный в виде модуля, который представляет собой именованный, самоописываемый набор кода и данных.
REPL (JShell) — добавлена возможность чтения-Eval-Print Loop (REPL) для платформы Java.
HTTP 2 Client — новый HTTPClient API, поддерживающий веб-сокеты и HTTP 2-потоки, а также функции проталкивания сервера.
Улучшенный JavaDocs — поддерживает генерацию вывода HTML5. Предоставляет окно поиска для сгенерированной документации API.
Multirelease JAR — расширяет формат JAR, благодаря чему в одном архиве могут сосуществовать несколько версий файлов классов для конкретных версий Java.
Методы фабрики коллекций — Новые статические фабричные методы для интерфейсов List, Set и Map для создания неизменяемых экземпляров этих коллекций.
Методы частного интерфейса — расширенные интерфейсы с частными и частными статическими методами.
Улучшения API процессов — Улучшенный API для контроля и управления процессами операционной системы.
Усовершенствования Stream API — Повышенная безопасность и надежность благодаря возможности фильтрации входящих потоков данных сериализации объектов.
Улучшение Try With Resources — теперь конечные переменные можно использовать в качестве ресурсов в выражении try-with-resources.
Улучшенная аннотация @Deprecated — обновлена аннотация @Deprecated для предоставления дополнительной информации о состоянии и предполагаемом расположении API.
Оператор Diamond внутреннего класса — разрешить использование оператора diamond с анонимными классами, если можно указать тип аргумента предполагаемого типа.
Необязательные улучшения класса — Новые полезные методы добавлены в класс java.util.Optional.
Multiresolution Image API — поддерживает инкапсуляцию набора изображений с разными разрешениями в одно изображение с множественным разрешением.
Усовершенствования API CompletableFuture . Асинхронные механизмы класса CompletableFuture могут выполнять действие при выходе из процесса с помощью метода ProcessHandle.onExit.
Облегченный JSON — упрощенный API, представленный для использования и создания документов и потоков данных через json в java 9.
API Reactive Streams — В Java SE 9 был представлен новый API Reactive Streams для поддержки реактивного программирования в Java 9.