След шестимесечна разработка, компания Oracle платформа (Java Platform, Standard Edition 13), като еталонна реализация, използваща отворения проект OpenJDK. В Java SE 13 е запазена обратната съвместимост с предишните версии на Java платформата; всички предишно написани Java проекти ще работят без промени под новата версия. Готови за инсталиране компилации на Java SE 13 (JDK, JRE и Server JRE) за Linux (x86_64), Solaris, Windows и macOS. Разработена в рамките на проекта OpenJDK, еталонната реализация е напълно отворена под лицензия GPLv2 с изключения на GNU ClassPath, позволяващи динамично свързване с търговски продукти.
Java SE 13 е класифициран като издание с обичаен срок на поддръжка, с обновления, които ще се пускат до следващото издание. Като версия с дълъг срок на поддръжка (LTS) следва да се използва Java SE 11, с обновления, които ще се пускат до 2026 година. Предходната LTS версия Java 8 ще се поддържа до декември 2020 година. Следващото LTS издание е планирано за септември 2021 година. Напомняме, че от изданието Java 10 проекта е преминал към нов процес на разработка, предвиждащ по-кратък цикъл за нови издания. Новите функции вече се развиват в постоянно актуализирана master клон, в който се включват готовите промени и от който на всеки шест месеца се отделят клонове за стабилизация на новите издания. Планирано е издаването на Java 14 за март следващата година, предварителните компилации на която вече са налични за тестване.
От :
- поддръжка на динамично добавяне на CD архиви (Class-Data Sharing), осигуряващи споделен достъп на приложенията до общи класове. Чрез CDS, общите класове могат да бъдат разположени в отделен споделян архив, което ускорява стартирането на приложенията и намалява разходите. В новата версия са добавени средства за динамично архивиране на класове след приключване на изпълнението на приложението. Поместените в архива класове включват всички заредени при работа на програмата класове и свързаните библиотеки, които не са били налични в първоначално предоставения основен CDS архив;
- В събирателя на отпадъци ZGC (Z Garbage Collector) поддръжка на връщането на неизползвана памет на операционната система;
- преработена реализация на API Legacy Socket (java.net.Socket и java.net.ServerSocket), която е по-лесна за поддържане и отстраняване на грешки. Освен това, предложената реализация ще бъде по-лесно адаптирана за работа с новата система за потоци в потребителското пространство (fibers), развивана в рамките на проекта Loom;
- развитие на нова форма на изрази „switch“. Добавена е експериментална (Preview) възможност за използване на „switch“ не само под формата на оператор, но и като израз. Например, сега можете да използвате конструкции от вида:
int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
};или
System.out.println(
switch (k) {
case 1 -> "one"
case 2 -> "two"
default -> "many"
}
);В бъдеще на базата на тази възможност да се реализира поддръжка на шаблонно съвпадение;
- експериментална поддръжка на текстови блокове — нова форма на стрингови литерали, позволяващи вграждането на многострочни текстови данни в изходния код без използване на екраниране на символи и запазваща оригиналното форматиране на текста в блока. Ограничаващият блок се осъществява с три двойни кавички. Например, вместо израза
String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" +
"WHERE `CITY` = 'INDIANAPOLIS'\n" +
"ORDER BY `EMP_ID`, `LAST_NAME`;\n";сега можете да използвате конструкцията:
String query = """
SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
WHERE `CITY` = 'INDIANAPOLIS'
ORDER BY `EMP_ID`, `LAST_NAME`;
«»»; - Затворени са 2126 отчета за грешки, от които 1454 са отстранени от служители на Oracle, а 671 от външни участници, от които една шеста част от промените са направени от независими разработчици, а останалото от представители на компании като IBM, Red Hat, Google, Loongson, Huawei, ARM и SAP.
Източник: opennet.ru
