Да, я слежу за новыми возможностями последних версий Java. Среди значимых изменений в последних релизах можно выделить:
-
Java 17 (LTS):
- Sealed Classes (JEP 409): Управление наследованием классов для повышения безопасности и предсказуемости.
- Pattern Matching for switch (Second Preview, JEP 420): Улучшенный синтаксис для оператора
switch, позволяющий сопоставлять типы объектов.
- Foreign Function & Memory API (Second Incubator, JEP 412): Безопасное и эффективное взаимодействие с нативным кодом и памятью вне JVM.
- Vector API (Second Incubator, JEP 414): Поддержка векторных операций для увеличения производительности вычислений.
-
Java 18:
- Simple Web Server (JEP 408): Простой встроенный HTTP-сервер для целей разработки и тестирования.
- UTF-8 by Default (JEP 400): Установка кодировки по умолчанию для платформы в UTF-8.
- Code Snippets in Java API Documentation (JEP 413): Возможность включать фрагменты исходного кода в Javadoc.
-
Java 19:
- Virtual Threads (First Preview, JEP 425): Легковесные потоки для упрощения написания высокомасштабируемых серверных приложений.
- Pattern Matching for switch (Third Preview, JEP 427): Дальнейшее улучшение функционала сопоставления объектов в
switch.
- Record Patterns (First Preview, JEP 405): Возможность деструктуризации объектов типа
record в шаблонах.
-
Java 20:
- Scoped Values (First Incubator, JEP 429): Способ безопасного обмена данными между потоками без использования изменяемых переменных или
InheritableThreadLocal.
- Record Patterns (Second Preview, JEP 432): Дополнительные улучшения для шаблонов записей.
- Virtual Threads (Second Preview, JEP 436): Продолжение развития виртуальных потоков.
-
Java 21 (LTS):
- Virtual Threads (JEP 444): Виртуальные потоки стали стандартной функцией.
- Record Patterns (JEP 440): Шаблоны записей стали стандартной функцией.
- Sequence Collections (JEP 431): Новые интерфейсы для упорядоченных коллекций.
- Pattern Matching for switch (JEP 441): Шаблоны сопоставления в операторе
switch стали стандартной функцией.
- Scoped Values (Second Preview, JEP 462): Продолжение работы над Scoped Values.
Особое внимание уделяется развитию виртуальных потоков, которые значительно упрощают работу с асинхронностью и повышают производительность сервисов, работа которых связана с большим количеством ожиданий (I/O). Также продолжается работа над проектом Panama (интерфейсы для взаимодействия с нативным кодом), проект Valhalla (новые примитивные типы и улучшения производительности) и проект Loom (виртуальные потоки).
Понимание этих новых возможностей важно для написания современного, эффективного и поддерживаемого кода на Java.