- PVSM.RU - https://www.pvsm.ru -

Что нового будет в Java 14

Что нового будет в Java 14 - 1 [1]

Java 14 должна выйти позже в этом месяце — с рядом изменений.

Какие изменения планируется включить в обновление:

  1. JEP 305: сопоставление шаблонов для «instanceof» (предварительная версия) [2]. Сопоставление шаблонов позволяет выражать обычную логику «кратко и безопасно». Согласно документации OpenJDK, сейчас существуют только специализированные решения для сопоставления шаблонов, поэтому авторы посчитали, что пришло время существенно расширить использование сопоставления шаблонов в Java. 
  2. JEP 343: упаковщик (инкубатор) [3]. Этот инструмент позволяет создавать установочные пакеты для автономных Java-приложений. 
  3. JEP 345: выделение памяти с поддержкой NUMA для G1 [4]. Предполагается, что это улучшит производительность G1 на больших машинах.
  4. JEP 349: потоки событий JFR [5]. Это позволит непрерывно считывать данные профилировщика JDK Flight Recorder.
  5. JEP 352: сопоставленные байтовые буферы в энергонезависимой памяти [6]. В этом выпуске добавлены новые режимы сопоставления файлов, которые позволяют использовать API-интерфейс FileChannel для создания экземпляров MappedByteBuffer, ссылающихся на энергонезависимую память.
  6. JEP 358: полезная информация в исключениях NullPointerException [7]. Теперь исключения NullPointerException, генерируемые виртуальной Java-машиной, будут указывать, какая переменная оказалась «null».
  7. JEP 359: записи (предварительная версия) [8]. Записи дают синтаксис для объявления классов, действующих как удобные и понятные хранилища неизменяемых данных. Одна из основных претензий к Java в том, что приходится писать слишком много кода, особенно когда речь идет о классах. В документации OpenJDK говорится, что из-за этого разработчики иногда пытаются изловчиться и облегчить себе работу, что приводит к проблемам в будущем.
  8. JEP 361: «switch» как выражение [9]. Теперь «switch» можно использовать и как оператор, и как выражение. Это упростит использование Java и заложит фундамент для реализации сопоставления шаблонов в «switch». Ранее эта функция была представлена в виде предварительной версии в JDK 12 и JDK 13. 
  9. JEP 362: устаревание портов на Solaris и SPARC [10]. Начиная с этого выпуска, данные порты будут считаться нерекомендуемыми к использованию, а в одном из следующих выпусков будут полностью удалены. 
  10. JEP 363: удаление сборщика мусора (GC), работающего по алгоритму маркировки и очистки (CMS) [11]. Сборщик мусора CMS уже более двух лет считается устаревшим — с тех пор внимание было обращено на улучшение других сборщиков. В частности, были представлены два новых: ZGC и Shenandoah. Команда разработчиков считает, что теперь CMS можно спокойно удалять, и ожидает, что будущие улучшения в других сборщиках мусора еще больше снизят потребность в CMS. 
  11. JEP 364 и 365: ZGC в macOs [12] и Windows [13]. Сборщик мусора ZCG был портирован на macOS и Windows.
  12. JEP 366: устаревание комбинации алгоритмов сбора мусора ParallelScavenge + SerialOld [14]. По словам команды разработчиков, эта комбинация используется редко, но требует значительных усилий по поддержке. Они считают, что такая комбинация полезна только при развертывании, которое сочетает в себе очень большой сборщик мусора нового поколения и очень маленький старого поколения. 
  13. JEP 367: удаление API и инструментов Pack200 [15]. Эти инструменты считаются устаревшими с версии Java SE 11.
  14. JEP 368: текстовые блоки (вторая предварительная версия) [16]. Добавлены текстовые блоки — многострочные строковые литералы, которые можно использовать без escape-последовательностей. Это позволяет обеспечить предсказуемое поведение форматирования строк и контролировать их отображение. 
  15. JEP 370: API доступа к внешней памяти (инкубатор) [17]. Этот API даст возможность приложениям безопасно и эффективно получать доступ к внешней памяти («foreign memory») вне «кучи» Java.

Новость переведена в Alconost [18], профессиональной студии по переводу и локализации

Автор: alconost

Источник [19]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/348811

Ссылки в тексте:

[1] Image: https://habrahabr.ru/company/alconost/blog/491378/

[2] JEP 305: сопоставление шаблонов для «instanceof» (предварительная версия): https://openjdk.java.net/jeps/305

[3] JEP 343: упаковщик (инкубатор): https://openjdk.java.net/jeps/343

[4] JEP 345: выделение памяти с поддержкой NUMA для G1: https://openjdk.java.net/jeps/345

[5] JEP 349: потоки событий JFR: https://openjdk.java.net/jeps/349

[6] JEP 352: сопоставленные байтовые буферы в энергонезависимой памяти: https://openjdk.java.net/jeps/352

[7] JEP 358: полезная информация в исключениях NullPointerException: https://openjdk.java.net/jeps/358

[8] JEP 359: записи (предварительная версия): https://openjdk.java.net/jeps/359

[9] JEP 361: «switch» как выражение: https://openjdk.java.net/jeps/361

[10] JEP 362: устаревание портов на Solaris и SPARC: https://openjdk.java.net/jeps/362

[11] JEP 363: удаление сборщика мусора (GC), работающего по алгоритму маркировки и очистки (CMS): https://openjdk.java.net/jeps/363

[12] macOs: https://openjdk.java.net/jeps/364

[13] Windows: https://openjdk.java.net/jeps/365

[14] JEP 366: устаревание комбинации алгоритмов сбора мусора ParallelScavenge + SerialOld: https://openjdk.java.net/jeps/366

[15] JEP 367: удаление API и инструментов Pack200: https://openjdk.java.net/jeps/367

[16] JEP 368: текстовые блоки (вторая предварительная версия): https://openjdk.java.net/jeps/368

[17] JEP 370: API доступа к внешней памяти (инкубатор): https://openjdk.java.net/jeps/370

[18] Alconost: https://alconost.com/ru/?utm_source=habrahabr&utm_medium=article&utm_campaign=news&utm_content=java14

[19] Источник: https://habr.com/ru/post/491378/?utm_campaign=491378&utm_source=habrahabr&utm_medium=rss