Після шести місяців розробки компанія Oracle випустила платформу Java SE 11 (Java Platform, Standard Edition 11), в ролі еталонної реалізації якої використовується відкритий проект OpenJDK. В Java SE 11 збережена зворотна сумісність з минулими випусками платформи Java. Всі раніше написані Java-проекти будуть працювати під управлінням нової версії без необхідності внесення змін.
Розроблена в рамках проекту 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), який відрізняється видаленням застарілих і ненадійних криптографічних примітивів;
-
Стабілізовано новий API для розробки HTTP-клієнтів, що підтримує HTTP / 2.0 і WebSockets. Новий HTTP Client API прийшов на зміну API HttpURLConnection;
-
До складу включені інструменти Java Mission Control (JMC) і Java Flight Recorder (JFR), які раніше поставлялися лише для платних версій. JMC та JFR надає функції для моніторингу, діагностики, профілювання і виявлення джерел витоків пам'яті. JFR дозволяє отримати доступ до детальної низькорівневої інформації про роботу JVM і дає можливість ефективно аналізувати поточні дані та події, що відбулися без негативного впливу на продуктивність.
-
Підтримку потокового шифру ChaCha20 і алгоритму аутентифікації повідомлень (MAC) Poly1305. ChaCha20 і Poly1305 можна розглядати, як більш швидкі й безпечні аналоги AES-256-CTR і HMAC, програмна реалізація яких дозволяє домогтися фіксованого часу виконання без використання спеціальних апаратних прискорювачів;
-
Підтримку системи управління доступом Nestmate (Nest-based access controls), яка адаптована для коректної обробки доступу з урахуванням вкладених типів;
* Формат файлів з класами Java (.class) розширено підтримкою динамічно створюваних констант (пул CONSTANT_Dynamic). Завантаження CONSTANT_Dynamic призводить до делегування створення констант в метод bootstrap, за аналогією з тим, як в метод bootstrap делегуються операції зв'язування при виклику invokedynamic;
-
Запропоновано експериментальний збирач сміття ZGC (Z Garbage Collector), який працює в пасивному режимі й наскільки це можливо мінімізує затримки через збірки сміття. Час зупинки при використанні ZGC не перевищує 10 мс. При цьому ZGC може працювати як з купами розміром від кількох сотень мегабайтів до багатьох терабайт;
-
Додано експериментальний збирач сміття Epsilon, який обмежений виконанням операцій розподілу пам'яті і не реалізує механізму звільнення і повторного залучення блоків (коли місце в купі закінчиться, JVM завершить роботу);
-
Забезпечено можливість запуску програм, що поставляються в формі одного файлу з вихідним кодом;
-
У розряд застарілих можливостей переведені JavaScript-рушій Nashorn і інструментарій Pack200. Видалені модулі Java EE і CORBA.
Ще немає коментарів