Анонсированы новые функции Java 9

в 13:22, , рубрики: openjdk

Компания Oracle серьёзно взялась за разработку JDK9 и опубликовала первый список «предложений на улучшение» (JEP), в которых описаны новые функции Java 9. Список довольно невелик и консервативен, но за предстоящие два года до выпуска Java 9 его наверняка дополнят.

Программные интерфейсы

Представлены три новых программных интерфейса.

  • Обновление Process API для лучшего взаимодействия с не-Java процессами операционной системы (сейчас разработчики часто вынуждены использовать нативный код).
  • Новый HTTP-клиент с поддержкой HTTP 2.0, веб-сокетов и заменой устаревшему HttpURLConnection.
  • Облегчённый JSON API для обработки и генерации JSON-документов и потоков данных.

Производительность/JVM

Здесь тоже предложено три улучшения (для начала).

  • Улучшенное разрешение конфликтов при захвате блокировки (contended locking) при многопоточной работе и совместном доступе нескольких потоков к объектам. Тут речь идёт об общем улучшении производительности за счёт ускорения операций мониторов, таких как notify/notifyAll и PlatformEvent::unpark().
  • Умный Java-компилятор (sjavac) будет улучшен до такой степени, чтобы его использовать по умолчанию в билдах JDK и на постоянной основе для сборки других больших проектов. Сейчас он пока не годится для таких целей по разным причинам, в том числе из-за нестабильной работы. Код компилятора кардинально переработают и протестируют. Возможно, его даже выпустят как отдельное независимое приложение без привязки к JDK. Планируется реализовать в нём и новые функции, в том числе параллельную и shared-компиляцию.
  • Сегментирование кэша кода. Эта область используется JVM, когда включена JIT-компиляция, в ней кэшируется скомпилированный платформенно-зависимый код. После модернизации кэш разделят на несколько частей, каждая из которых будет содержать скомпилированный код определённого типа: non-method (внутренний код JVM), profiled и non-profiled. Это увеличит производительность и позволит легче внедрять будущие расширения.

One More Thing...

Ещё одним нововведением в Java 9 станет стандартная модульная структура исходного кода JDK.

<pre class=«prettyprint» xml:space=«preserve»>src/{share,$OS}/{classes,native}/$PACKAGE/*.{java,c,h,cpp,hpp}

Изменение никак не повлияет на бинарники, но зато сильно улучшит работу с исходниками: легче станет портировать Java на мобильные устройства, «отсекая» ненужные модули, проще станет изучать структуру кода и искать баги/уязвимости и т.д. В конечном итоге, это приведёт и к улучшению производительности приложений, и к упрощению создания и поддержки библиотек и больших проектов на платформах Java SE и EE.

Рефакторинг кода станет продолжением старого проекта Jigsaw.


Раньше анонсировалось несколько десятков мелких улучшений в Java 9, но эти, о которых объявлено сейчас, — наиболее значительные.

Автор: alizar

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js