• JDK 19 перешёл в первую фазу Rampdown. Список JEP'ов заморожен, а исходный код ответвлён в стабилизационный репозиторий.
Примечательно, что из всех семи JEP'ов Java 19 только один будет иметь стабильный характер (Linux/RISC-V Port). Все остальные будут иметь статус Preview, либо Incubator.
Тем временем, уже началась разработка Java 20. У нового релиза появилась своя страница, где можно скачать первую сборку JDK 20-ea+1.
• В Java 19 попал интересный патч, который исправляет баг 20-летней давности. Баг этот заключается в том, что метод Double.toString()
иногда возвращает некорректный результат, например:
> jshell
| Welcome to JShell -- Version 18.0.1.1
| For an introduction type: /help intro
jshell> Double.toString(1e23)
$1 ==> "9.999999999999999E22"
В Java 19 это исправлено:
> jshell
| Welcome to JShell -- Version 19-ea
| For an introduction type: /help intro
jshell> Double.toString(1e23)
$1 ==> "1.0E23"
Помимо возвращения корректного результата новая реализация также значительно быстрее (в 17.7 раз по замерам автора), поскольку не выделяет промежуточных объектов, не содержит циклов и использует только целочисленную арифметику.
• В блоге IntelliJ IDEA вышел новый выпуск Java Annotated Monthly за июнь.