Oracle выпустила Java 14

Логотип компании
19.03.2020Автор
Oracle выпустила Java 14
Oracle JDK 14 объединила средства и функции плановых шестимесячных релизов в рамках функциональных обновлений (Feature Release) более чем за два последних года.

Oracle JDK 14 объединила средства и функции плановых шестимесячных релизов в рамках функциональных обновлений (Feature Release) более чем за два последних года.

Комплект Java Development Kit (JDK) предлагает разработчикам новые функции, в том числе две новые ознакомительные возможности (Preview Features) – Pattern Matching for instanceof (JEP 305) и Records (JEP 359), а также Text Blocks (JEP 368) для повторного превью. Кроме того, в новом релизе Java добавлена поддержка конструкций выбора Switch Expressions, включены новые API-интерфейсы для непрерывного мониторинга данных JDK Flight Recorder, расширена доступность Z Garbage Collector с малой задержкой для macOS и Windows, а в модулях инкубатора представлен упаковщик самодостаточных приложений Java и новый API-интерфейс для безопасного доступа к областям внешней памяти вне динамически распределяемой heap-памяти Java.

Релиз также впервые включен важный контент из таких проектов, как Project Panama – расширенный интерфейс доступа к внешней памяти (Foreign-Memory Access API, JEP 370) и дальнейшие усовершенствования из Project Amber – Pattern Matching (JEP 305) и Records (JEP 359). Новые функции, представленные в Java 14, включают в себя:

  • JEP 305: Pattern Matching for instanceof (превью) – расширяет функциональность сопоставления с шаблоном для оператора instanceof, устраняя необходимость в шаблонном коде, и позволяет получить более компактный и типобезопасный код.
  • JEP 343: Packaging Tool (инкубатор) – предоставляет возможность упаковывать приложения Java для распространения в специфичных для платформ форматах. Это помогает создавать приложения в виде единого поставляемого пакета библиотек, в котором объединены среда исполнения и код приложения. Инструменты представлены в модуле инкубатора и позволяют передавать разработчикам неконечные версии API и нефинальные версии инструментов для получения их отзывов. API/инструменты либо дорабатываются до финальных версий, либо удаляются в следующем релизе.
  • JEP 345: NUMA-Aware Memory Allocation for G1 – повышает общую производительность сборщика мусора G1 в системах с архитектурой памяти NUMA (Non-Uniform Memory Access).
  • JEP 349: JFR Event Streaming – открывает данные JDK Flight Recorder (JFR) для непрерывного мониторинга.
  • JEP 352: Non-Volatile Mapped Byte Buffers – добавляет режим мэппинга файлов для JDK при использовании энергонезависимой памяти.
  • JEP 358: Helpful NullPointerExceptions – повышает удобство использования исключений NullPointerException, точно описывая, какая переменная была равна нулю, и предоставляя другую полезную информацию.
  • JEP 359: Records (превью) – возможность обеспечивает компактный синтаксис объявления классов, которые содержат поверхностные неизменяемые данные (shallowly immutable). Функция может сократить шаблонный код в классах такого типа, и моделировать данные как данные, а также позволит объявлять поверхностные неизменяемые агрегаты номинальных данных.
  • JEP 361: Switch Expressions (стандартная) – функция присутствовала в JDK 12 и JDK 13 как ознакомительная и теперь добавлена в качестве стандартной. Она позволяет использовать конструкцию выбора switch как оператор или выражение, а также открывает возможность применения функции сопоставления с шаблоном (Pattern Matching, JEP 305), представленной в этом релизе в качестве ознакомительной.
  • JEP 364: ZGC on macOS и JEP 365: ZGC on Windows – масштабируемость сред на основе Linux macOS и Windows.
  • JEP 368: Text Blocks (второе превью) – в текстовые блоки из Java 13 были добавлены улучшения. Теперь они снова предлагаются как ознакомительная возможность с целью сделать их стандартом в будущем выпуске JDK. Блоки позволяют выражать строковые последовательности, которые занимают несколько строк исходного кода. Поддерживается миграция из строковых литералов за счет того, что любая новая конструкция может выражать тот же набор строк, что и строковый литерал, интерпретировать те же escape-последовательности и обрабатываться так же, как строковый литерал.
  • JEP 370: Foreign-Memory Access API (инкубатор) – API-интерфейс, позволяющий программам Java безопасно получать доступ к областям внешней памяти вне динамически распределяемой heap-памяти Java.

Похожие статьи