• В рассылке OpenJDK продолжается обсуждение того, как должны выглядеть условия в паттернах, и, похоже, группа экспертов уже близка к единому мнению. Условия, скорее всего, будут отделяться от паттернов оператором &&
:
switch (o) { case String s && (s.length() == 1) -> ... case String s -> ... }
• Брайан Гетц предвидит, что в Java когда-нибудь могут появиться паттерны в присваивании, поэтому уже сейчас начинает обсуждать эту тему в рассылке.
• Вышло два новых JEP:
JEP 399: Intermediate-Representation Graph Serialization.
JEP 400: UTF-8 by Default. В этом JEP'е предлагается сделать UTF-8 кодировкой по умолчанию для таких API как FileReader, FileWriter, InputStreamReader, OutputStreamWriter, Formatter, Scanner, URLEncoder, URLDeconder и т.д. Сейчас кодировка по умолчанию определяется во время старта JVM и может зависеть от различных факторов, таких как операционная система, пользовательская локаль и значения некоторых свойств виртуальной машины. Когда этот JEP будет реализован, UTF-8 станет кодировкой по умолчанию для всех JDK, что сделает приложения на Java более портируемыми.
• Роман Кеннке, лидер проекта Shenandoah в RedHat, предложил в рассылке новый проект Lilliput, целью которого будет уменьшение размера заголовка объекта в Hotspot до 64/32 бит и более гибкая схема размещения битов в нём. Сейчас заголовок каждого объекта в 64-разрядном Hotspot имеет размер от 96 до 128 бит, и такое сжатие могло бы существенно снизить нагрузку на память и/или CPU в Java-приложениях.
• Компания JetBrains выпустила первую версию своего нового инструмента Projector, который позволяет запускать IDE от JetBrains или Swing-приложения на сервере и управлять ими откуда угодно с помощью браузера или нативного приложения.
• Вышел Apache NetBeans 12.3.
• Вышла версия 1.0 библиотеки Hibernate Reactive, которая предоставляет реактивное API к Hibernate ORM.
• Вышел JavaFX 16.
• Вышли новые ранние сборки JDK: JDK 17-ea+13-1000, JDK 17-loom+4-174.