Новости Java #17

• Самая главная новость этой недели – выход Kotlin 1.5.0. Перечислим некоторые изменения и улучшения:

  • Появилась поддержка JVM-записей с помощью аннотации @JvmRecord.
  • Модификатор sealed теперь можно применять не только классам, но и к интерфейсам.
  • Подклассы sealed классов теперь не обязаны объявляться в том же файле, а могут объявляться в любых файлах того же пакета.
  • inline value классы, которые появились в экспериментальном режиме в Kotlin 1.2.30, теперь стали стабильными.
  • Новый IR (Intermediate Representation) компилятор Kotlin в JVM стал стабильным и включенным по умолчанию.
  • SAM (Single Abstract Method) адаптеры теперь компилируются в invokedynamic. Для простых лямбд такая возможность тоже появилась, но только в экспериментальном режиме с включенной опцией -Xlambdas=indy.
  • Версия JVM target теперь 1.8 вместо 1.6.

• Вышел новый JEP 415: Context-Specific Deserialization Filters.

• Вышел выпуск Java Annotated Monthly за май 2021.

• В Java предложено улучшить алгоритм сортировки чисел. Тесты показывают, что прирост производительности составляет 50% в среднем и до 6 раз на больших случайных массивах. Огромный прирост в последнем случае достигается засчёт использования поразрядной сортировки.

• В рассылке OpenJDK было предложено сделать java.lang.Object абстрактным классом. Это бы сделало согласованной модель, в которой примитивные классы могут наследоваться только от абстрактных классов без полей, но сломало бы обратную совместимость на уровне исходного кода. Но запретить вызывать new Object() можно поэтапно, сначала показывая предупреждение, а спустя несколько лет переквалифицировать в ошибку компиляции.

• Вышел бэкпорт-релиз Gradle 6.9.

• Вышел JMH 1.30.

Подписывайтесь на канал в Telegram, чтобы не пропускать новости.

Все материалы на этом сайте выложены под лицензией CC BY-SA 4.0
© Евгений Козлов, 2017-2024
Feed
Table of JEPs