Какие ключевые возможности Java 11 вы используете и почему она популярна?

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

Ответ

Java 11 — это версия с долгосрочной поддержкой (LTS), широко используемая в production-средах.

Ключевые нововведения, которые я применяю:

  1. HTTP Client API (java.net.http): Стандартный, современный клиент для HTTP/2 и WebSocket.

    HttpClient client = HttpClient.newBuilder()
        .version(HttpClient.Version.HTTP_2)
        .build();
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.example.com/data"))
        .GET()
        .build();
    HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
  2. Локальный синтаксис var в лямбда-выражениях: Повышает читаемость.

    (var x, var y) -> x.process(y);
  3. Новые методы в классе String:

    • isBlank() — проверяет, что строка пуста или содержит только пробелы.
    • lines() — возвращает поток строк, разделенных n.
    • repeat(int count) — повторяет строку.
      String multiline = "HellonWorld";
      multiline.lines().forEach(System.out::println);
  4. Фабричные методы для коллекций (List.of(), Set.copyOf()): Создают неизменяемые коллекции.

  5. Запуск исходного кода без явной компиляции: java MyProgram.java

Причины популярности Java 11:

  • Стабильность LTS: Гарантированные обновления безопасности и исправления ошибок.
  • Улучшенная производительность: Оптимизации в сборщике мусора G1 и компиляторе JIT.
  • Экосистема: Полная поддержка всеми основными фреймворками (Spring, Hibernate) и инструментами CI/CD.
  • Контейнеризация: Меньший размер официальных Docker-образов (например, openjdk:11-jre-slim).