Компания Oracle опубликовала Java SE 11

26 сентября 2018 года

После шести месяцев разработки компания Oracle выпустила платформу Java SE 11 (Java Platform, Standard Edition 11), в качестве эталонной реализации которой используется открытый проект OpenJDK. В Java SE 11 сохранена обратная совместимость с прошлыми выпусками платформы Java, все ранее написанные Java-проекты без изменений будут работоспособны при запуске под управлением новой версии. Готовые для установки сборки Java SE 11 (JDK, JRE и Server JRE) подготовлены для Linux (x86_64), Solaris (SPARC), Windows и macOS. Разработанная в рамках проекта OpenJDK эталонная реализация Java 11 полностью открыта под лицензией GPLv2 с исключениями GNU ClassPath, разрешающими динамическое связывание с коммерческими продуктами.

Java SE 11 отнесён к категории выпусков с длительным сроком поддержки (LTS), обновления для которого будут выпускаться до 2026 года. Выпуск обновлений для прошлого промежуточного выпуска Java 10 прекращён. Прошлая LTS-ветка Java 8 будет поддерживаться до декабря 2020 года. Следующий LTS-релиз намечен на сентябрь 2021 года. Напомним, что начиная с прошло выпуска проект перешёл на новый процесс разработки, подразумевающий более короткий цикл формирования новых релизов. Новая функциональность теперь развивается в одной постоянно обновляемой master-ветке, в которую включаются уже готовые изменения и от которой раз в шесть месяцев ответвляются ветки для стабилизации новых выпусков.

Из новшеств Java 11 можно отметить:

  • Поддержка протокола TLS 1.3 ( RFC 8446), который отличается удалением устаревших и ненадёжных криптографических примитивов (MD5, SHA-224) и возможностей (сжатие, повторное согласование, не-AEAD шифры, статический обмен ключами RSA и DH, указание unix-времени в Hello-сообщениях и т.п.), работает только в режиме forward secrecy (компрометации одного из долговременных ключей не позволяет расшифровать перехваченный сеанс), обеспечивает более высокую производительность, поддерживает режим 0-RTT (устраняет задержки при возобновлении ранее установленных HTTPS-соединений), поддерживает

потоковый шифр ChaCha20, алгоритм аутентификации сообщений (MAC) Poly1305, ключи аутентификации на основе цифровых подписей Ed25519, HKDF (HMAC-based Extract-and-Expand Key Derivation Function), ключи на основе алгоритмов x25519 ( RFC 7748) и x448 ( RFC 8031);

  • Стабилизирован новый API для разработки HTTP-клиентов, поддерживающий HTTP/2.0 и WebSockets. Новый HTTP Client API пришёл на смену API HttpURLConnection;
  • В состав включены инструментарии Java Mission Control (JMC) и Java Flight Recorder (JFR), которые ранее поставлялись только для платных подписчиков. Инструментарий предоставляет средства для мониторинга, диагностики, профилирования и выявления утечек памяти. JFR позволяет получить доступ к детальной низкоуровневой информации о работе JVM и даёт возможность эффективно анализировать текущие данные и произошедшие события без негативного влияния на производительность.
  • Поддержка потокового шифра ChaCha20 и алгоритма аутентификации сообщений (MAC) Poly1305, разработанных Дэниелом Бернштейном ( Daniel J. Bernstein), Таней Ланге (Tanja Lange) и Питером Швабе (Peter Schwabe). ChaCha20 и Poly1305 можно рассматривать, как более быстрые и безопасные аналоги AES-256-CTR и HMAC, программная реализация которых позволяет добиться фиксированного времени выполнения без задействования специальных аппаратных ускорителей;
  • Поддержка системы управления доступом Nestmate ( Nest-based access controls), которая адаптирована для корректной обработки доступа с учётом вложенных типов. Nestmate обеспечивает возможность обращения к приватным частям внутри группы классов, логически относящимися к одному и тому же компоненту, но компилируемым в разные файлы с классами. Новый механизм управления доступом позволяет избавиться от необходимости подстановки компилятором специальных промежуточных методов обеспечения доступа;
  • Формат файлов с классами Java (.class) расширен поддержкой динамически создаваемых констант (пул CONSTANT_Dynamic). Загрузка CONSTANT_Dynamic приводит к делегированию создания констант в метод bootstrap, по аналогии с тем, как в метод bootstrap делегируются операции связывания при вызове invokedynamic;
  • Предложен экспериментальный сборщик мусора ZGC (Z Garbage Collector), работающий в пассивном режиме и насколько это возможно минимизирующий задержки из-за сборки мусора. Время остановки при использовании ZGC не превышает 10 мс. При этом ZGC может работать как с небольшими, так и с огромными кучами, размером от нескольких сотен мегабайт до многих терабайт;
  • Добавлен экспериментальный сборщик мусора Epsilon, который ограничен выполнением операций распределения памяти и не реализует механизма освобождения и повторного задействования блоков (когда место в куче закончится, JVM завершит работу);
  • Обеспечена возможность запуска программ, поставляемых в форме одного файла с исходным кодом;
  • В разряд устаревших возможностей переведены JavaScript-движок Nashorn и инструментарий Pack200. Из поставки удалены модули Java EE и CORBA.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Компания Oracle опубликовала Java SE 11», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.