Первый релиз Java 11

good-penguin.png

Сегодня вышел первый релиз Java 11. Это первая LTS (Long Time Support) версия Java, после изменения политики выпуска новых версий начиная с Java 9. Публичные обновления Java 11 будут выпускаться до сентября 2023 года.

В JDK 11 произошли следующие изменения:

  1. Стек развёртывания апплетов и Web Start приложений, объявленный устаревшим в Java 9, теперь удалён окончательно.
  2. Вместе с удалением стека развёртывания исчез список поддерживаемых браузеров.
  3. Удалено автоматическое обновление JRE и сам JRE для Windows и MacOS.
  4. Вместо JRE и Server JRE предлагается использовать утилиту jlink для создания меньших кастомных рантаймов.
  5. JavaFX более не является частью JDK, а поставляется отдельно из openjfx.io.
  6. Java Mission Control, поставлявшийся вместе с JDK 7, 8, 9, 10 также перестал быть частью JDK и поставляется отдельно.
  7. Формат обновлений для Windows переведён с tar.gz на zip, как на более часто используемый в этой операционной системе.
  8. Формат обновлений для MacOS переведён с .app на .dmg, как на более соответствующий стандартнам этой операционной системы.


Изменения в JDK:

  1. JEP 327 Unicode 10 включая 16018 новых символов среди которых:
    а. 19 новых символов для 4K TV стандарта
    б. символ Биткоина
    в. 128 эможи символов
    г. 10 новых алфавитов, среди которых: албанский, брахманский (11-го века) и прочая экзотика.
    д. 18 новых блоков символов для новых и существующих алфавитов, среди которых Cyrillic Extended-C
  2. JEP 321 HTTP Client (Standard) стандартизирован и переведён из jdk.incubator.http в java.net.http
  3. В интерфейс Collection добавлен toArray(IntFunction) Default Method, перегружающий toArray(T[]). Это привело к несовместимости со старым кодом, в котором есть вызов toArray(null). Теперь такой вызов приводит к ошибке компиляции и должен быть изменён на аналогичный с кастингом null в требуемый тип.
  4. Обновлены локали для Unicode CLDR v33
  5. Добавлена возможность ленивого создания потоков компиляции. Включается опцией -XX:+UseDynamicNumberOfCompilerThreads
  6. Добавлен новый экспериментальный Scalable Low-Latency Garbage Collector, известный под именами Z и ZGC. Включается одновременным использованием опций -XX:+UnlockExperimentalVMOptions и -XX:+UseZGC
  7. JEP 318 Epsilon, A No-Op Garbage Collector новый ничего не освобождающий сборщик мусора, предназначенный для тестирования.
  8. JEP 331 Low-Overhead Heap Profiling — поддержка низкозатратного профилирования выделения памяти в куче. Доступно через JVMTI
  9. JEP 329 ChaCha20 and Poly1305 Cryptographic Algorithms
  10. Системные свойства java.home, user.home, user.dir и user.name теперь неизменяемы


И ещё много других изменений. Также можно упомянуть удаление поддержки CORBA, мониторинга JVM через SNMP. Из JDK удалены модули, связанные с Java EE. По умолчанию используется не GTK2, а GTK3. Расширено использование нового ключевого слова var, которое теперь может использоваться при объявлении параметров лямбд. При этом все параметры таких лямбд обязаны быть var. Удалены фонты Lucida. Плагин javax.imageio больше не поддерживает JPEG с альфа каналом, судя по всему из-за проприетарности старой реализации.

JDK 11 можно скачать тут. Также следует обратить внимание на то, что изменена лицензия Oracle JDK. Теперь она GPL+CE, как и у OpenJDK.

Для переходящих на Java 11 LTS с Java 8 такой переход добавит ещё и массу новшеств Java 9 и Java 10, перечислять которые тут излишне.

>>> Подробности

©  Linux.org.ru