Пасля шасці месяцаў распрацоўкі кампанія Oracle выпусціла платформа JavaSE 13 (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 эталонная рэалізацыя Java 13 цалкам адкрыта пад ліцэнзіяй GPLv2 з выключэннямі GNU ClassPath, якія дазваляюць дынамічнае звязванне з камерцыйнымі прадуктамі.
Java SE 13 аднесены да катэгорыі выпускаў са звычайным тэрмінам падтрымкі, абнаўленні для якога будуць выпускацца да наступнага рэлізу. У якасці галінкі з працяглым тэрмінам падтрымкі (LTS) варта выкарыстоўваць Java SE 11, абнаўленні для якога будуць выпускацца да 2026 гады. Мінулая LTS-галінка Java 8 будзе падтрымлівацца да снежня 2020 гады. Наступны LTS-рэліз намечаны на верасень 2021 года. Нагадаем, што пачынальна з выпуску Java 10 праект перайшоў на новы працэс распрацоўкі, які разумее карацейшы цыкл фармавання новых рэлізаў. Новая функцыянальнасць зараз развіваецца ў адной стала якая абнаўляецца master-галінцы, у якую ўключаюцца ўжо гатовыя змены і ад якой раз у шэсць месяцаў адгаліноўваюцца галінкі для стабілізацыі новых выпускаў. На сакавік наступнага года запланаваны выпуск Java 14, папярэднія зборкі якога ўжо даступныя для тэсціравання.
Дададзена падтрымка дынамічнага дадатку архіваў CDS (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.