Вышла Java 10

Только что на сайте Oracle стала доступна для скачивания новая, десятая версия Java SE. Java 10 – это первая версия Java, вышедшая в соответствии с новым полугодовым релизным циклом, т.е. не через несколько лет после выхода Java 9, а всего через полгода. Это значит, что в Java 10 не так много изменений по сравнению с Java 9, чем в Java 9 по сравнению с Java 8 (12 JEP'ов в Java 10 против 99 в Java 9).

Вот список главных изменений в Java 10:

  • JEP 286: Local-Variable Type Inference. Теперь можно не писать тип локальных переменных, а вместо этого использовать ключевое слово var.
  • JEP 307: Parallel Full GC for G1. G1, который стал сборщиком мусора по умолчанию начиная с Java 9, теперь поддерживает параллельную полную сборку мусора. До этого полная сборка мусора была однопоточной.
  • JEP 310: Application Class-Data Sharing. Class-Data Sharing теперь поддерживает не только системные классы, но и классы приложения.
  • JEP 313: Remove the Native-Header Generation Tool. Утилита javah для генерации нативных заголовков была удалена. Вместо неё нужно использовать javac.
  • JEP 317: Experimental Java-Based JIT Compiler. Теперь в Java есть новый экспериментальный JIT-компилятор Graal, написанный полностью на Java. Graal использует интерфейс компилятора JVM (JVMCI), который появился в Java 9. Graal уже был включён в Java 9, но только на Linux. Теперь же он есть на всех платформах.
  • JEP 322: Time-Based Release Versioning. Java 10 теперь будет использовать новую схему версионирования, которая очень близка к предыдущей схеме, специфицированной в JEP 223, но с небольшими различиями, которые упрощают версионирование при новом релизном цикле.

Также список JEP-ов, которые носят более технический характер:

Список наиболее значимых изменений в API:

  • Новые методы List.copyOf(), Set.copyOf() и Map.copyOf().
  • Новые методы Collectors.toUnmodifiableList(), Collectors.toUnmodifiableSet(), Collectors.toUnmodifiableMap().
  • Новый метод Optional.orElseThrow(), который делает то же самое, что и Optional.get(), но который более точно отражает его суть.
  • Новые методы в JarFile и JarEntry, упрощающие работу с мультирелизными JAR-файлами.
  • Новый метод Reader.transferTo(Writer).
  • Новый конструктор PrintWriter, который принимает Charset.

Важно знать, что Java 10 не является LTS-релизом. Это означает, что у него выйдет всего два обновления 10.0.1 и 10.0.2, а потом для обновления ничего не останется, кроме как перейти на Java 11. Кроме того, Java 10 будет последней бесплатной версией Oracle JDK. Следующая версия Oracle JDK будет доступна только за деньги, а бесплатно можно будет скачать только OpenJDK.

Подписывайтесь на канал в Telegram, чтобы не пропускать новости.

Все материалы на этом сайте выложены под лицензией CC BY-SA 4.0
© Евгений Козлов, 2017-2020