Какой у вас опыт работы с Java 11?

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

Ответ

Имею практический опыт разработки на Java 11, включая использование ключевых нововведений и миграцию проектов с более ранних версий.

Основные использованные фичи:

  • Локальные переменные в лямбда-выражениях (var): Упрощает чтение кода при использовании сложных дженериков.
    var list = List.of("A", "B", "C");
    list.forEach((var s) -> System.out.println(s.toLowerCase()));
  • Новый HTTP Client (java.net.http): Полноценный, поддерживающий HTTP/2 и WebSocket, асинхронный и синхронный API.
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest request = HttpRequest.newBuilder()
          .uri(URI.create("https://api.example.com/data"))
          .header("Content-Type", "application/json")
          .GET()
          .build();
    HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  • Новые методы в String API: isBlank(), lines(), repeat(), strip() (Unicode-корректные аналоги trim()).
  • Модульная система (JPMS): Понимание принципов, работа с module-info.java.
  • Экспериментальные сборщики мусора: Ознакомление с низколатентными GC: ZGC и Shenandoah.

Почему это важно: Java 11 — LTS-версия, предлагающая улучшения производительности, безопасности и новые API для современной разработки.