Новые возможности Java 9
Java 9 была выпущена 22 сентября 2017 года и принесла множество новых возможностей, самое важное изменение — реализованная модульная система. Далее мы подробно рассмотрим новые возможности Java 9.
Новые возможности Java 9
- Система модулей: Модуль — это контейнер для пакетов. Одно из самых больших изменений в Java 9 — введение системы модулей (Project Jigsaw).
- REPL (JShell): Интерактивная среда программирования.
- Клиент HTTP 2: Стандарт HTTP/2 — это последняя версия протокола HTTP. Новый API HTTPClient поддерживает потоки WebSocket и HTTP2, а также функции server push.
- Улучшенный Javadoc: Теперь Javadoc поддерживает поиск в документации API. Кроме того, вывод Javadoc теперь соответствует стандартам HTML5.
- Многорелизные JAR-файлы: Функция многорелизных JAR позволяет создавать версии классов, которые выбираются только при запуске библиотечных программ в определённых версиях среды Java.
- Фабричные методы коллекций: В интерфейсах List, Set и Map новые статические фабричные методы позволяют создавать неизменяемые экземпляры этих коллекций.
- Приватные методы интерфейсов: Использование приватных методов в интерфейсах. Мы можем применять модификатор доступа private для написания приватных методов в интерфейсах.
- Process API: Улучшенный API для контроля и управления процессами операционной системы. В нём появились java.lang.ProcessHandle и его вложенный интерфейс Info, помогающие разработчикам избавиться от необходимости использовать нативный код для получения PID локального процесса.
- Улучшенный Stream API: Улучшенный Stream API добавляет ряд удобных методов, упрощающих обработку потоков и позволяющих писать сложные запросы с использованием коллекторов.
- Улучшенная конструкция try-with-resources: Если у вас уже есть ресурс, объявленный как final или фактически final, вы можете использовать эту переменную в операторе try-with-resources, не объявляя новую переменную в этом операторе.
- Улучшенная аннотация @Deprecated: Аннотация @Deprecated может помечать статус Java API, указывая на то, что помеченный API будет удалён или уже не работает.
- Улучшенный оператор diamond: Анонимные классы могут использовать оператор diamond.
- Улучшенный класс Optional: java.util.Optional добавляет много новых полезных методов. Optional можно напрямую преобразовать в поток.
- API многомасштабных изображений: Определение API многомасштабных изображений позволяет разработчикам легко манипулировать изображениями различных разрешений и отображать их.
- Улучшенный CompletableFuture API: Асинхронный механизм класса CompletableFuture может выполнять операции при завершении метода ProcessHandle.onExit.
- Облегчённый JSON API: встроен облегчённый JSON API.
- Reactive Streams API: Java 9 представляет новый Reactive Streams API для поддержки реактивного программирования в Java 9.
Чтобы узнать о других новых возможностях, обратитесь к официальному сайту:Что нового в JDK 9
Адрес загрузки JDK 9:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-doc-downloads-3850606.html
В примерах статьи по Java 9 мы используем среду JDK 1.9. Вы можете использовать следующую команду для просмотра текущей версии JDK:
$ java -version java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+163) Java HotSpot(TM) 64-Bit Server VM (build 9-ea+163, mixed mode)Далее мы подробно рассмотрим новые возможности Java 9: