Новые возможности 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:
Нет. Характеристика
1 Модульная система
2 REPL (JShell)
3 Улучшенный Javadoc
4 Мультирелизные JAR-файлы
5 Фабричные методы коллекций
6 Приватные методы интерфейсов
7 Process API
8 Stream API
9 try-with-resources
10 @Deprecated
11 Оператор diamond для внутренних классов
12 Класс Optional
13 API многомасштабных изображений
14 CompletableFuture API
Другие расширения