Захватывающие новые функции в Java 9

В сентябре Oracle выпустила Java SE 9 с более чем 150 новыми функциями. Последняя версия широко используемого языка программирования поставляется с несколькими новыми функциями и API для ускорения разработки приложений как для больших, так и для небольших устройств.

В то же время функции, предоставляемые Java 9, помогают программистам повысить производительность, безопасность и удобство обслуживания приложений. Следовательно, для программистов становится необходимым понять некоторые ключевые функции, предоставляемые Java 9.

Что нужно знать программистам о Java 9?

Модульная система

Теперь разработчики могут использовать Лучшую поддержку для HTML5 и JavaScript, чтобы разделить JDK на несколько модулей. Каждый модульный файл JAR содержит дескриптор модуля. Разработчики могут определить взаимозависимость различных модулей через операторы require.

Модульность облегчает программистам плавный запуск модулей JVM на небольших устройствах, которым не хватает дополнительной памяти. В то же время они могут запускать только те API и модули JVM, которые требуются приложению.

Опережающая сборка

Java 9 значительно улучшает процесс компиляции кода за счет своевременной компиляции (AOT). Программисты могут использовать компиляцию AOT-компиляции классов Java в нативный код даже до того, как виртуальная машина их запустит. Компиляция AOT повышает производительность как больших, так и небольших приложений, преодолевая основные недостатки компиляции JIT. В отличие от JIT-компиляции, AOT-компиляция гарантирует, что ни один Java-метод не останется некомпилированным.

Real-Eval-Print-Loop Tool

Java 9 поставляется с новым инструментом командной строки real-eval-print-loop (REPL) - Shell. В оболочке предусмотрены функции для интерактивной оценки декларативных операторов и выражений. Программист может использовать Shell для оценки качества Java-кода перед компиляцией.

Он может просто ввести кусок кода и собрать отзывы. Shell даже имеет возможность заполнять вкладки и автоматически добавлять необходимые точки с запятой терминала. Новый инструмент REPL позволяет Java конкурировать с широко используемыми языками программирования, такими как Python и Scala.

Лучшая поддержка HTML5 и JavaScript

Усовершенствованный инструмент документации Javadoc, предоставляемый Java 9, имеет возможность генерировать разметку HTML5. Кроме того, последняя версия языка программирования поддерживает несколько новых символов, блоков и сценариев как часть стандарта кодирования Unicode 8.0.

В то же время Java 9 поставляется с улучшенным и легковесным движком JavaScript, который облегчает программистам встраивание кода JavaScript в приложения Java. Разработчики могут дополнительно включить анализ кода ECMAScript в различных IDE и средах напрямую с помощью API синтаксического анализатора для синтаксического дерева Nashorn ECMAScript, предоставляемого JDK.

Улучшенный Stream API

При написании Java-кода программисты используют строки для выражения вычислений. Java 8 ускорила потоковую обработку благодаря предоставлению Streams API. Java 9 поставляется с улучшенной версией Streams API, которая позволяет разработчикам принимать и удалять элементы из Stream на основе определенных условий, добавляя методы. Кроме того, улучшенный API-интерфейс Streams разработан с функциями для создания потока с нулевым значением и перебора элементов Stream.

API с несколькими разрешениями изображений

Java 9 представляет новый интерфейс - MultiResolutionImage - для создания одного изображения с несколькими разрешениями путем инкапсуляции нескольких изображений с различными разрешениями. Разработчики могут также использовать API-интерфейс Multi-Resolution Image API, предоставляемый Java 9, для получения различных вариантов одного изображения.

Кроме того, они могут использовать API для выбора конкретного изображения на основе требуемого разрешения. Следовательно, теперь Java-программисты могут использовать единый API для создания унифицированного изображения с множественным разрешением и получения вариантов изображения для конкретного разрешения.

http: // 2 клиентский API

Java 9 полностью изменила способ, которым приложения делают вызовы HTTP. Он заменяет HttpURLConnection API новым HTTP-клиентом API. HTTP-клиент API поддерживает как http: // 2, так и WebSockets. Однако API в настоящее время не является частью Java SE. Он реализован в виде инкубатора, который находится в пространстве имен jdk.incubtor. Но HTTP-клиент API поддерживает новейшие стандарты связи, преодолевая недостатки HttpURLConnection API.

API стека

При написании Java-кода программисты исследуют способы эффективного доступа к стекам и их фильтрации. Последняя версия Java упрощает обход стека, предоставляя API Stack-Walking. Новый API облегчает программистам доступ и фильтрацию информации трассировки стека. Кроме того, он поддерживает как короткие, так и длинные прогулки. Следовательно, программистам становится проще получать доступ и фильтровать весь стек, не полагаясь на виртуальную машину для сбора информации о стеке.

API безопасности уровня передачи дейтаграмм (DTLS)

Java 9 помогает разработчикам создавать безопасные приложения, предоставляя API для Datagram Transport Layer Security (DTLS). API обеспечивает безопасность взаимодействия между клиентом и сервером, исключая вероятность подделки данных, подделки сообщений и перехвата. Кроме того, он обеспечивает конфиденциальность связи для различных приложений, которые используют протокол передачи дейтаграмм (DTP). Несмотря на то, что разработано на основе безопасности транспортного уровня (TLS), DTLS реализует протокол SSL.

Улучшенный процесс API

Зачастую Java-программисты сталкиваются с проблемой контроля и управления процессами операционной системы. API-интерфейс Process, предоставляемый более ранними версиями разработчиков для доступа к собственному коду и написания дополнительного кода. Но улучшенный Process API, предоставляемый Java 9, облегчает программистам контроль и управление процессами операционной системы. Они могут использовать API для непосредственного взаимодействия приложения Java с операционной системой. Кроме того, они могут использовать новые методы для обработки имен и состояний процессов без написания дополнительного кода.

Устаревшие Особенности

Несмотря на предоставление нескольких новых функций, Java 9 не поддерживает некоторые функции, предоставляемые Java 8. Например, он больше не поддерживает API-интерфейс апплета. В веб - разработчики Java должны перейти от апплета API для Java Web Start для запуска приложений из веб - браузеров. 

Аналогичным образом, Java 8 ускоряет разработку сборщиков мусора в виртуальной машине HotSpot, отказываясь от сборщиков мусора в Concurrent Mark Sweep (CMS). При использовании самой последней версии Java у программистов также нет возможности получать предупреждения Java о выражениях импорта и выбирать JRE во время запуска.

В целом, Java 9 поставляется с несколькими новыми функциями, упрощающими разработку приложений как для больших, так и для небольших устройств. Однако некоторые двоичные файлы и исходные коды, представленные в Java 9, несовместимы с более ранними версиями языка программирования. 

Программистам даже приходится вносить несколько изменений в код и обновлять библиотеки при переносе существующих приложений на Java 9. Но разработчики должны рассмотреть возможность обновления своих существующих приложений до Java 9, чтобы воспользоваться этими новыми функциями и улучшениями. Разработчики Java также должны использовать эти настоятельно рекомендуемые инструменты для лучшего программирования.