Вышла Java 11

Только что официально вышла новая, одиннадцатая версия Java. Скачать образы JDK можно либо в виде Oracle JDK под коммерческой лицензией, либо как OpenJDK с лицензией GPLv2. Различия между ними заключаются в том, что бесплатную версию Oracle JDK 11 можно легально использовать только для разработки, а OpenJDK можно использовать и в производственном целях.

Образы JRE не предоставляются. Для создания JRE пользователи теперь должны сами запускать утилиту jlink.

Java 11, как и Java 10, это достаточно маленький (по количеству изменений) релиз, потому что после выхода предыдущей версии прошло всего полгода. Однако, в отличие от Java 10, этот релиз является Long Term Support, а значит, он будет поддерживаться как минимум до сентября 2022 года. К сожалению, бесплатные обновления Oracle будет выпускать только в течение полугода. Для получения дальнейших обновлений придётся либо заплатить, либо использовать альтернативные источники поддержки, например, AdoptOpenJDK, RedHat, Azul и т.д.

Вот список того, что было изменено и улучшено в Java 11:

  • Удалены аплеты и Web Start, которые ранее в Java 9 были помечены как deprecated.
  • JavaFX и Java Misssion Control теперь не поставляются вместе с JDK, а существуют как отдельные проекты.
  • На Windows и macOS теперь нет автообновлений.
  • Формат поставки для Windows сменился с tar.gz на zip.
  • JEP 323: Local-Variable Syntax for Lambda Parameters. Теперь ключевое слово var можно использовать не только для объявления локальных переменных методов, но и для параметров лямбда-выражений.
  • JEP 320: Remove the Java EE and CORBA Modules. Модули JAX-WS, JAXB, JAF, Common Annotations, CORBA, JTA, которые ранее в Java 9 были помечены как deprecated for removal, теперь удалены окончательно. Вместо них теперь нужно использовать их аналоги из Maven. Также удалён модуль-аггрегатор java.se.ee.
  • JEP 321: HTTP Client (Standard). HTTP Client, который появился в Java 9 как инкубационный модуль, теперь стал стандартным модулем.
  • JEP 328: Flight Recorder. Утилита Flight Recorder для диагностики и профилирования Java-приложений теперь стала общедоступной частью OpenJDK. Раньше её можно было использовать только на коммерческой основе.
  • JEP 330: Launch Single-File Source-Code Programs. Исходные файлы Java теперь можно исполнять напрямую, без промежуточной компиляции.
  • JEP 181: Nest-Based Access Control. Доступ между закрытыми членами вложенных классов теперь реализован на уровне JVM, а значит больше не нужна генерация синтетических методов доступа между ними.
  • JEP 309: Dynamic Class-File Constants. Появился новый механизм constantdynamic (condy), благодаря которому константными значениями теперь могут быть не только простые литералы, а более сложные динамические выражения произвольного типа.
  • JEP 318: Epsilon: A No-Op Garbage Collector. Появился новый сборщик мусора EpsilonGC, который занимается только выделением памяти, но не освобождает её. При достижении лимита памяти виртуальная машина останавливается.
  • JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental). Появился новый сборщик мусора ZGC, который ставит своей задачей обеспечить маленькие паузы (< 10 мс) на всём диапазоне куч (от сотен мегабайт до нескольких терабайт), при этом издержки производительности не должны превышать 15%. Сборщик мусора имеет экспериментальный статус и работает только на Linux/x64.

Остальные JEP-ы:

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

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