Долгожданная Java SE 9.0 будетОпубликовано 21 сентября 2017 г., это принесет некоторые важные изменения.
Основным изменением в JDK 9 является введение нового компонента программирования Java или модуля, который, согласно Oracle, представляет собой именуемый, самоописываемый набор кода и данных. Основной целью модульной технологии является уменьшение размера и сложности приложений Java и основной среды выполнения Java. С этой целью сам JDK был модульным, и Oracle надеется таким образом повысить производительность, безопасность и удобство сопровождения.
Для поддержки модулей Java 9 введен новый модульный формат файла JAR, который будет включать файл module-info.class в корневой каталог. Oracle также предоставляет инструменты, которые позволяют нам комбинировать и оптимизировать набор модулей для формирования пользовательского образа среды выполнения (образа), который не обязательно должен включать в себя всю среду выполнения Java. Другие изменения, вызванные модульностью, включают удаление файлов rt.jar и tools.jar из образа среды выполнения Java.
InfoQ иBen EvansПоболтал, чтобы узнать, что он думает о модульной системе Java 9.0, и он является членом исполнительного комитета Java Community Process (JCP).
Oracle объявила, что Java 8 будет выпуском с долгосрочной поддержкой, который будет поддерживаться до 2022 года, поэтому Эванс считает, что многие приложения останутся на Java 8 и вообще не будут обновляться до Java 9. Эванс добавил, что некоторые приложения могут использовать версию Java 8 для разработки и создания цепочек инструментов, но использовать среду выполнения Java 9 в производстве.
Использование Java 9G1Как сборщик мусора по умолчанию, заменяющий ранее использовавшийся по умолчаниюParallel GC. Эванс комментирует изменение:
InfoQ спрашивает, нужно ли реорганизовать большие кодовые базы в модули.Martijn Verburgмнение, что онJClarityГенеральный директор и соорганизатор Лондонской группы пользователей Java.
Вербург дает несколько общих советов по модульности и указывает на некоторые вещи, о которых нужно знать разработчикам при внедрении модульной системы Java 9:
- Читайте книги Пола и Сандера.«Модульность Java 9»: это исчерпывающее руководство, в котором упоминаются все вещи, требующие внимания, объясняется, как модули, пакеты и JAR-файлы работают вместе;
- На границах модулей используйте четко определенные интерфейсы и программы для этих интерфейсов;
- Не разделяйте пакеты, то есть не делите пакет на два модуля. Принять OpenJDK имеетинструмент обнаружения, мы можем использовать его для проверки существующего кода;
- Убедитесь, что нет циклических зависимостей (Jigsaw этого не допускает);
- Компоновка исходного кода модуля отличается от той, к которой мы привыкли, и нам нужно убедиться, что инструмент сборки может обрабатывать ее соответствующим образом;
- Jigsaw не поддерживает несколько версий.
По словам Вербурга, основные моменты связаны с круговыми зависимостями, разделением пакетов и обеспечением совместимости кода с интерфейсами. Эта работа должна быть проделана заранее для существующей кодовой базы, прежде чем пытаться выполнить модульный рефакторинг с помощью Jigsaw. Он также развеял заблуждение о том, что на Java 9 могут работать только модульные приложения.
Вербург считает, что Jigsaw станет краеугольным камнем, который позволит Java развиваться быстрее, благодаря неустанной работе Марка Рейнхольда, Алана Бейтмана, Мэнди Чанг и остальных членов команды Jigsaw, которые сделали это возможным.
В Java 9 также появился инструмент jshell. Эта среда командной строки обеспечивает функциональность Read-Eval-Print-Loop (REPL) для платформы Java. Его цель — упростить реализацию прототипов и помочь нам изучить варианты языка при кодировании в виде немедленных результатов и обратной связи.
И Вербург, и Эванс были рады видеть, что jShell включен в Java 9, но были разочарованы тем, что HTTP/2 предлагался только в качестве модуля-инкубатора в Java 9. Эванс считает, что, учитывая интерес сообщества к этой функции и помощь в ее реализации, Oracle следует выделить достаточные инженерные ресурсы для выпуска HTTP/2 в виде общедоступной версии.
Полный список изменений в JDK 9 можно найти на сайте Oracle.сайтПроверьте это. ОракулОбъявления делаются раз в полгода, что означает, что Java 9 был последним выпуском, ориентированным на основные функции, что отражает то, как Oracle в настоящее время управляет Java. Следующий этап эволюции Java будет следовать за более короткими циклами выпуска и будет выпускаться более функционально ориентированным образом. Еще неизвестно, останется ли Java лидером в серверных технологиях.
Посмотреть оригинальный английский:Long Awaited Java 9.0 Releasing This Week