Программирование

Java 17

Что такое Java 17?

Java 17 вышла в сентябре 2021 года и это выпуск LTS. Широкий LTS до неё был Java 11, позже пришла Java 21. В 17 готовы record, sealed class и pattern matching для instanceof. Текстовые блоки пришли раньше и в 17 тоже есть.

Для чего нужен Java 17?

Java 17 — цель для серверного приложения, библиотеки и части инструментов сборки Android.

  • Серверный фреймворк вроде Spring
  • Перенос старого кода Java 8 или 11
  • Короткий тип данных через record
  • Стабильные инструменты JDK

Что можно делать с Java 17?

На Java 17 программу с Java 11 можно перенести на более новый синтаксис после проверки. В новом проекте record укорачивает DTO. Самого нового синтаксиса, включая часть вещей из более позднего LTS, в 17 нет.

Сложно ли освоить Java 17?

Для того, кто знает Java, 17 — не новый язык. Трудность в переходе со старого JDK, удалённых внутренних API и версии инструмента сборки. Если java --version не показывает 17, код не на 17.

Плюсы и ограничения

Плюс: поддержка на годы, стабильность и широкие библиотеки. Ограничение: части возможностей языка из 21 и более поздних LTS здесь нет. Если проект ещё на 8, переход не обходится без тестов.

Основные понятия

JDK даёт язык и инструменты. JRE только для запуска. record — короткий класс с полями.

  • LTS значит долгую поддержку
  • sealed class ограничивает, кто может наследоваться
  • pattern matching укорачивает проверку instanceof
  • Gradle или Maven выбирает, каким JDK собирать проект

Короткий пример

Сначала посмотри установленную версию. Затем record записывает маленький тип данных так.

java --version

record Point(int x, int y) {}

Частые вопросы

  • Java 17 — самая новая версия? Нет. Есть более новый LTS. 17 всё ещё цель во многих местах.
  • Java 17 и язык Java — разное? Нет. 17 — один выпуск языка.
  • Java 17 хватает для Android? Да, если инструмент сборки разрешает. Это видно в Gradle-файле проекта.