Следите ли вы за обновлениями Java?

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

Ответ

Да, отслеживание обновлений Java — критически важно для современного разработчика. Основное внимание уделяется LTS-релизам (Long-Term Support), таким как Java 11, 17, 21, которые получают многолетние обновления безопасности и стабильности.

Ключевые нововведения в последних LTS-версиях:

  • Java 11: Локальные переменные для лямбда-параметров (var), новые методы в String (isBlank, lines), HTTP Client (стандартный).
  • Java 17: sealed-классы для контролируемого наследования, pattern matching для instanceof, всегда строгая浮点 семантика.
  • Java 21: Виртуальные потоки (Virtual Threads, Project Loom) для упрощения высоконагруженных concurrent-приложений, pattern matching для switch (финальная версия).

Пример sealed-классов (Java 17):

// Базовый запечатанный класс явно указывает своих наследников
public sealed class Shape permits Circle, Rectangle, Triangle {
    public abstract double area();
}

// Наследники должны быть final, sealed или non-sealed
final class Circle extends Shape {
    private final double radius;
    public Circle(double r) { this.radius = r; }
    @Override public double area() { return Math.PI * radius * radius; }
}

final class Rectangle extends Shape { /* ... */ }
final class Triangle extends Shape { /* ... */ }

Практический совет: Используйте не-LTS версии (например, Java 20, 22) для экспериментов с preview-фичами, но для production выбирайте LTS.