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

wbtynfrtnkc467x98ykr4fyqfvk.jpeg

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

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

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


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

© Habrahabr.ru