Какую версию Java выбрать для нового микросервиса?

«Какую версию Java выбрать для нового микросервиса?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для нового микросервиса следует выбирать последнюю актуальную LTS-версию Java. На данный момент это Java 17 или Java 21.

Почему LTS (Long-Term Support)?

  • Гарантированные обновления безопасности и исправления ошибок на протяжении многих лет.
  • Стабильность для production-среды.

Ключевые особенности Java 17:

  • Records для создания неизменяемых классов-данных.
  • Sealed Classes для контроля наследования.
  • Pattern Matching for instanceof.
  • Улучшения производительности сборщика мусора (ZGC, Shenandoah).

Ключевые особенности Java 21:

  • Virtual Threads (Project Loom) для упрощения написания высокопроизводительных concurrent-приложений.
  • Record Patterns и Pattern Matching for switch.

Пример настройки в Maven (Java 17):

<properties>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
</properties>

Рекомендация: Для большинства проектов сегодня оптимален Java 17 как проверенная и широко поддерживаемая LTS. Если требуется пионерское использование виртуальных потоков и команда готова к раннему adoption, можно рассмотреть Java 21.