Paglabas ng Java SE 13

Pagkatapos ng anim na buwan ng pag-unlad, Oracle pinakawalan platform JavaSE 13 (Java Platform, Standard Edition 13), ang open-source na OpenJDK na proyekto ay ginagamit bilang isang reference na pagpapatupad. Ang Java SE 13 ay nagpapanatili ng backward compatibility sa mga nakaraang release ng Java platform; lahat ng naunang naisulat na mga proyekto ng Java ay gagana nang walang pagbabago kapag tumakbo sa ilalim ng bagong bersyon. Ready-to-install Java SE 13 build (JDK, JRE at Server JRE) nakahanda para sa Linux (x86_64), Solaris, Windows at macOS. Pagpapatupad ng sanggunian na binuo ng proyekto ng OpenJDK Java 13 ay ganap na open source sa ilalim ng lisensya ng GPLv2, na may mga pagbubukod sa GNU ClassPath na nagpapahintulot sa dynamic na pag-link sa mga komersyal na produkto.

Ang Java SE 13 ay inuri bilang pangkalahatang release ng suporta at patuloy na makakatanggap ng mga update hanggang sa susunod na release. Ang sangay ng Long Term Support (LTS) ay dapat na Java SE 11, na patuloy na makakatanggap ng mga update hanggang 2026. Ang nakaraang LTS branch ng Java 8 ay susuportahan hanggang Disyembre 2020. Ang susunod na paglabas ng LTS ay naka-iskedyul para sa Setyembre 2021. Paalalahanan ka namin na simula sa paglabas ng Java 10, lumipat ang proyekto sa isang bagong proseso ng pag-unlad, na nagpapahiwatig ng mas maikling cycle para sa pagbuo ng mga bagong release. Ang bagong functionality ay binuo na ngayon sa isang patuloy na ina-update na master branch, na kinabibilangan ng mga yari na pagbabago at kung saan ang mga branch ay sinasanga bawat anim na buwan upang patatagin ang mga bagong release. Ang Java 14 ay naka-iskedyul para sa paglabas sa Marso sa susunod na taon, na may preview builds na magagamit para sa pagsubok or pagsusuri.

Ng mga inobasyon Java 13 maaari markahan:

  • Idinagdag suporta para sa dynamic na pagdaragdag ng mga archive ng CDS (Class-Data Sharing), na nagbibigay ng nakabahaging access sa application sa mga karaniwang klase. Sa CDS, ang mga karaniwang klase ay maaaring ilagay sa isang hiwalay, nakabahaging archive, na nagpapahintulot sa mga application na maglunsad ng mas mabilis at mabawasan ang overhead. Ang bagong bersyon ay nagdaragdag ng mga tool para sa dynamic na pag-archive ng mga klase pagkatapos ng pagtatapos ng pagpapatupad ng application. Kasama sa mga naka-archive na klase ang lahat ng klase at kasamang mga aklatan na na-load sa panahon ng pagpapatakbo ng programa na wala sa unang ibinigay na base CDS archive;
  • Sa ZGC (Z Garbage Collector) idinagdag suporta para sa pagbabalik ng hindi nagamit na memorya sa operating system;
  • Kasangkot isang muling idinisenyong pagpapatupad ng Legacy Socket API (java.net.Socket at java.net.ServerSocket) na mas madaling mapanatili at i-debug. Bilang karagdagan, ang iminungkahing pagpapatupad ay magiging mas madaling iakma upang gumana sa bagong sistema ng mga thread sa espasyo ng gumagamit (fibers), na binuo bilang bahagi ng proyekto ng Loom;
  • Patuloy pagbuo ng isang bagong anyo ng mga expression na "switch". Nagdagdag ng kakayahang pang-eksperimentong (Preview) na gumamit ng "switch" sa anyo hindi lamang ng isang operator, kundi pati na rin bilang isang expression. Halimbawa, maaari mo na ngayong gamitin ang mga construct tulad ng:

    int numLetters = switch (araw) {
    kaso LUNES, BIYERNES, LINGGO -> 6;
    kaso MARTES -> 7;
    kaso HUWEBES, SABADO -> 8;
    kaso WEDNESDAY -> 9;
    };

    o

    System.out.println(
    lumipat (k) {
    kaso 1 -> "isa"
    kaso 2 -> "dalawa"
    default -> "marami"
    }
    );

    Sa hinaharap, batay sa tampok na ito binalak ipatupad ang suporta sa pagtutugma ng pattern;

  • Idinagdag pang-eksperimentong suporta para sa mga bloke ng teksto - isang bagong anyo ng mga literal na string na nagbibigay-daan sa iyong isama ang data ng multi-line na text sa iyong source code nang hindi gumagamit ng character na tumatakas at pinapanatili ang orihinal na pag-format ng teksto sa block. Ang bloke ay naka-frame sa pamamagitan ng tatlong double quote. Halimbawa, sa halip na expression

    String query = "PUMILI `EMP_ID`, `LAST_NAME` MULA SA `EMPLOYEE_TB`\n" +
    "WHERE `CITY` = 'INDIANAPOLIS'\n" +
    "ORDER BY `EMP_ID`, `LAST_NAME`;\n";

    Ngayon ay maaari mong gamitin ang konstruksiyon:

    String query = """
    PILIIN ang `EMP_ID`, `LAST_NAME` MULA SA `EMPLOYEE_TB`
    SAAN `CITY` = 'INDIANAPOLIS'
    ORDER NG `EMP_ID`, `LAST_NAME`;
    """;

  • 2126 na ulat ng bug ang isinara, kung saan 1454 ang naresolba ng mga empleyado ng Oracle, at 671 ng mga third party, kung saan ang ikaanim sa mga pagbabago ay ginawa ng mga independiyenteng developer, at ang iba ay ng mga kinatawan ng mga kumpanya gaya ng IBM, Red Hat, Google , Loongson, Huawei, ARM at SAP.

Paglabas ng Java SE 13

Pinagmulan: opennet.ru

Magdagdag ng komento