Выпуск Java SE 13

Пасля шасці месяцаў распрацоўкі кампанія 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, папярэднія зборкі якога ўжо даступныя для тэсціравання.

З навін Java 13 можна адзначыць:

  • Дададзена падтрымка дынамічнага дадатку архіваў 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.

Выпуск Java SE 13

Крыніца: opennet.ru

Дадаць каментар