Java Development Kit 16 теперь широко доступен. Готовые к производству двоичные файлы под GPL доступны в Oracle; двоичные файлы от других поставщиков вскоре появятся. Oracle также выпустила новую версию по коммерческой лицензии для тех, кто использует выпуск Oracle JDK как часть продукта или услуги Oracle, или для тех, кто хочет получить коммерческую поддержку.
В новом выпуске добавлены две основные новые функции — поддержка записей и сопоставление шаблонов для оператора instanceof.
Записи-это классы, которые действуют как прозрачные носители неизменяемых данных и могут рассматриваться как номинальные кортежи. Одной из причин их добавления в Java была попытка сделать язык менее многословным в надежде сократить количество ошибок.
Добавление поддержки сопоставления шаблонов для оператора instanceof предназначено для того, чтобы общая логика в программе, а именно условное извлечение компонентов из объектов, была выражена более сжато и безопасно. Эта функция была включена в качестве функции предварительного просмотра с Java 14.
JVM была улучшена с улучшенной поддержкой параллельной обработки стека потоков для сборщика мусора ZGC. Обработка была перенесена из безопасных точек в параллельную фазу. Команда разработчиков OpenJDK сказала:
«ZGC стремится сделать паузы в GC и проблемы масштабируемости в HotSpot делом прошлого. До сих пор мы переносили все операции GC, которые масштабируются в зависимости от размера кучи и размера метапространства, из операций безопасной точки в параллельные фазы. К ним относятся маркировка, перемещение, обработка ссылок, выгрузка классов и большая часть корневой обработки.»
Еще одной функцией JVM является elastic metaspace, функция, которая быстрее возвращает в операционную систему неиспользуемые метаданные класса виртуальной машины HotSpot (т. Е. метапространство), уменьшая объем памяти метапространства. Это предназначено для улучшения использования памяти в приложениях с интенсивной загрузкой и разгрузкой классов, которые до сих пор могли привести к большому количеству неиспользуемого пространства. Новая схема выделяет память метапространства меньшими порциями и повышает эластичность, возвращая неиспользуемую память метапространства в операционную систему.
В новом выпуске также появились новые инструменты и библиотеки, включая каналы сокетов Unix-домена и инструмент упаковки, позволяющий упаковывать автономные Java-приложения.