Gymterview
junior

Какие нововведения появились в Java 8 и JDK 8?

Java 8 — крупнейший релиз платформы, который привнёс элементы функционального программирования и модернизировал стандартную библиотеку. Ниже перечислены основные нововведения, разбитые по категориям.

Язык и компилятор

  • Лямбда-выражения
  • Ссылки на методы и конструкторы
  • Функциональные интерфейсы и аннотация @FunctionalInterface
  • default и static методы в интерфейсах
  • Повторяемые аннотации (@Repeatable)
  • Аннотации на типах данных (Type Annotations)
  • Рефлексия для параметров методов

Стандартная библиотека

  • Stream API для декларативной обработки коллекций
  • Новый Date/Time API (java.time) взамен устаревших Date/Calendar
  • Класс Optional для безопасной работы с null
  • StringJoiner и String.join()
  • Стандартный класс Base64
  • Новые методы в Map (putIfAbsent, compute, merge и др.)
  • Параллельная сортировка массивов (Arrays.parallelSort)
  • Поддержка беззнаковой арифметики в Integer/Long

Производительность и безопасность

  • Удалён PermGen, мета-данные классов перенесены в Metaspace
  • Улучшена производительность String(byte[], *) и getBytes()
  • Поддержка SSL/TLS Server Name Indication (SNI) в JSSE
  • Алгоритм SHA-224, улучшенное хранилище ключей (KeyStore)

Инструментарий

  • JavaScript-движок Nashorn и утилита jjs
  • Утилита jdeps для анализа зависимостей .class-файлов
  • Команда java может запускать JavaFX-приложения
  • Удалён мост JDBC-ODBC

На собеседовании: обычно не требуют перечислить всё, но ожидают упоминание лямбд, Stream API, нового Date/Time API, default-методов и Optional. Именно эти пять фич определили облик современного Java-кода.