Eldono de Java SE 13

Post ses monatoj da evoluo, Oracle liberigita platformo JavaSE 13 (Java Platform, Standard Edition 13), la malfermfonta OpenJDK-projekto estas uzata kiel referenca efektivigo. Java SE 13 konservas malantaŭan kongruon kun antaŭaj eldonoj de la Java-platformo; ĉiuj antaŭe skribitaj Java-projektoj funkcios sen ŝanĝoj kiam lanĉitaj sub la nova versio. Preta instali Java SE 13-konstruaĵoj (JDK, JRE kaj Server JRE) preparita por Linukso (x86_64), Solaris, Vindozo kaj macOS. Referenca efektivigo evoluigita per la OpenJDK-projekto Java 13 estas plene malfermita fonto laŭ la permesilo GPLv2, kun GNU ClassPath-esceptoj permesantaj dinamikan ligon kun komercaj produktoj.

Java SE 13 estas klasifikita kiel ĝenerala subtena eldono kaj daŭre ricevos ĝisdatigojn ĝis la venonta eldono. La branĉo Long Term Support (LTS) devus esti Java SE 11, kiu daŭre ricevos ĝisdatigojn ĝis 2026. La antaŭa LTS-filio de Java 8 estos subtenata ĝis decembro 2020. La venonta LTS-eldono estas planita por septembro 2021. Ni memorigu vin, ke ekde la liberigo de Java 10, la projekto ŝanĝis al nova evoluprocezo, kio implicas pli mallongan ciklon por la formado de novaj eldonoj. Nova funkcieco nun estas evoluigita en unu konstante ĝisdatigita majstra branĉo, kiu inkluzivas pretajn ŝanĝojn kaj de kiuj branĉoj estas disbranĉigitaj ĉiujn ses monatojn por stabiligi novajn eldonojn. Java 14 estas planita por liberigo en marto venontjare, kun antaŭprezentaj konstruoj jam disponebla por testado.

De novigoj Java 13 povas markon:

  • Aldonita subteno por dinamika aldono de arkivoj CDS (Class-Data Sharing), disponigante komunan aplikaĵaliron al oftaj klasoj. Kun KDS, oftaj klasoj povas esti metitaj en apartan, komunan arkivon, permesante al aplikoj lanĉi pli rapide kaj redukti superkozon. La nova versio aldonas ilojn por dinamika arkivado de klasoj post la fino de aplika ekzekuto. La arkivitaj klasoj inkludas ĉiujn klasojn kaj akompanajn bibliotekojn ŝarĝitajn dum programoperacio kiuj ne estis en la komence disponigita baza KDS-arkivo;
  • Al la ZGC (Z Rubokolektisto) aldonis subteno por resendi neuzatan memoron al la operaciumo;
  • Engaĝita restrukturita efektivigo de la Legacy Socket API (java.net.Socket kaj java.net.ServerSocket) kiu estas pli facile konservi kaj sencimigi. Krome, la proponita efektivigo estos pli facile adaptebla por labori kun la nova sistemo de fadenoj en uzantspaco (fibroj), disvolvita kiel parto de la projekto Loom;
  • Daŭrigis evoluo de nova formo de esprimoj "ŝalti". Aldonita eksperimenta (Antaŭrigardo) kapablo uzi "ŝaltilon" en la formo ne nur de operatoro, sed ankaŭ kiel esprimo. Ekzemple, vi nun povas uzi konstrukciojn kiel:

    int nombroLiteroj = ŝaltilo (tago) {
    kazo LUNDON, VENDRED, DIMANCHE -> 6;
    kazo MARDO -> 7;
    kazo ĴAŬDO, SABATO -> 8;
    kazo MERKREDO -> 9;
    };

    System.out.println(
    ŝaltilo (k) {
    kazo 1 -> "unu"
    kazo 2 -> "du"
    defaŭlta -> "multaj"
    }
    );

    En la estonteco, surbaze de ĉi tiu funkcio estas planita efektivigi ŝablonon kongrua subteno;

  • Aldonita eksperimenta subteno por tekstblokoj - nova formo de ĉenvortaĵoj, kiuj ebligas al vi inkluzivi plurliniajn tekstdatumojn en via fontkodo sen uzi signan eskapon kaj konservante la originan formatadon de la teksto en la bloko. La bloko estas enkadrigita per tri citiloj. Ekzemple, anstataŭ la esprimo

    Stringdemando = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" +
    "KIE `URBO` = 'INDIANAPOLIS'\n" +
    "MENDU PER `EMP_ID`, `LAST_NAME`;\n";

    Nun vi povas uzi la konstruon:

    Stringdemando = """
    ELEKTU `EMP_ID`, `LAST_NAME` EL `EMPLOYEE_TB`
    WHERE `URBO' = 'INDIANAPOLIS'
    MENDU PER `EMP_ID`, `LAST_NAME`;
    """;

  • 2126 cimraportoj estis fermitaj, el kiuj 1454 estis solvitaj de Oracle-dungitoj, kaj 671 de triaj partioj, el kiuj sesono de la ŝanĝoj estis faritaj de sendependaj programistoj, kaj la resto de reprezentantoj de firmaoj kiel IBM, Red Hat, Google. , Loongson, Huawei, ARM kaj SAP.

Eldono de Java SE 13

fonto: opennet.ru

Aldoni komenton