Veröffentlichung von Java SE 13

Nach sechsmonatiger Entwicklung hat die Firma Oracle hat plattforms Java SE 13 (Java Platform, Standard Edition 13), dessen Referenzimplementierung das Open-Source-Projekt OpenJDK nutzt. In Java SE 13 bleibt die Abwärtskompatibilität zu früheren Versionen der Java-Plattform erhalten, alle früher geschriebenen Java-Projekte werden ohne Änderungen mit der neuen Version funktionieren. Fertige Installationspakete von Java SE 13 (JDK, JRE und Server JRE) wurden vorbereitet für Linux (x86_64), Solaris, Windows und macOS. Die unter dem Projekt OpenJDK entwickelte Referenzimplementierung Java 13 ist vollständig unter der GPLv2-Lizenz mit Ausnahmen von GNU ClassPath geöffnet, die dynamische Bindungen an kommerzielle Produkte erlauben.

Java SE 13 gehört zur Kategorie der Releases mit normaler Unterstützung, für die Updates bis zur nächsten Veröffentlichung bereitgestellt werden. Die Version mit langfristiger Unterstützung (LTS) sollte Java SE 11 sein, für die Updates bis zum Jahr 2026 bereitgestellt werden. Die vorherige LTS-Version Java 8 wird bis Dezember 2020 unterstützt. Die nächste LTS-Veröffentlichung ist für September 2021 geplant. Es sei daran erinnert, dass mit der Veröffentlichung von Java 10 das Projekt auf einen neuen Entwicklungsprozess umgestellt hat, der einen kürzeren Zyklus zur Bildung neuer Releases beinhaltet. Neue Funktionalitäten werden jetzt in einem konstant aktualisierten Master-Zweig entwickelt, in den bereits fertige Änderungen aufgenommen werden und von dem alle sechs Monate Zweige zur Stabilisierung neuer Releases abgezweigt werden. Die Veröffentlichung von Java 14 ist für März nächsten Jahres geplant, wofür bereits verfügbar sind Testversionen zur Verfügung stehen.

Aus Neuheiten Java 13 kann man vermerken:

  • Hinzugefügt Unterstützung für das dynamische Hinzufügen von CDS-Archiven (Class-Data Sharing), die es Anwendungen ermöglichen, auf gemeinsame Klassen zuzugreifen. Mit CDS können gemeinsame Klassen in einem separaten gemeinsam genutzten Archiv abgelegt werden, was den Start von Anwendungen beschleunigt und die Overhead-Kosten reduziert. In der neuen Version wurden Mittel für die dynamische Archivierung von Klassen nach Abschluss der Anwendung hinzugefügt. In das Archiv eingefügte Klassen umfassen alle während der Programmausführung geladenen Klassen und zugehörigen Bibliotheken, die im ursprünglich bereitgestellten Basis-CDS-Archiv nicht vorhanden waren;
  • Im Garbage Collector ZGC (Z Garbage Collector) hinzugefügt wird die Rückgabe nicht genutzter Speicher an das Betriebssystem unterstützt;
  • wurde aktiviert Überarbeitete Implementierung der Legacy-Socket-API (java.net.Socket und java.net.ServerSocket), die einfacher zu warten und zu debuggen ist. Darüber hinaus ist die vorgeschlagene Implementierung leichter an das neue Thread-System im Benutzerraum (Fibers) anzupassen, das im Rahmen des Loom-Projekts entwickelt wird;
  • Fortgesetzt die Entwicklung einer neuen Form von Ausdrücken «switch». Eine experimentelle (Vorschau-) Möglichkeit wurde hinzugefügt, «switch» nicht nur als Anweisung, sondern auch als Ausdruck zu verwenden. Zum Beispiel kann man jetzt Konstruktionen der folgenden Art verwenden:

    int numLetters = switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> 6;
    case TUESDAY -> 7;
    case THURSDAY, SATURDAY -> 8;
    case WEDNESDAY -> 9;
    };

    oder

    System.out.println(
    switch (k) {
    case 1 -> «one»
    case 2 -> «two»
    default -> «many»
    }
    );

    In Zukunft wird basierend auf dieser Möglichkeit es ist geplant die Unterstützung für das Muster-Matching implementiert;

  • Hinzugefügt experimentelle Unterstützung für Textblöcke — eine neue Form von Zeichenliteralen, die es ermöglichen, mehrzeilige Textdaten ohne Escape-Zeichen in den Quellcode einzufügen und die ursprüngliche Formatierung des Textes im Block beizubehalten. Der Block wird mit drei doppelten Anführungszeichen umschlossen. Zum Beispiel anstelle des Ausdrucks

    String query = «SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n» +
    «WHERE `CITY` = ‘INDIANAPOLIS’\n» +
    «ORDER BY `EMP_ID`, `LAST_NAME`;\n»;

    kann man jetzt die Konstruktion verwenden:

    String query = «»»
    SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
    WHERE `CITY` = ‘INDIANAPOLIS’
    ORDER BY `EMP_ID`, `LAST_NAME`;
    «»»;

  • 2126 Fehlermeldungen wurden geschlossen, von denen 1454 von Oracle-Mitarbeitern behoben wurden und 671 von Drittanbietern, wobei ein Sechstel der Änderungen von unabhängigen Entwicklern eingereicht wurde und der Rest von Vertretern solcher Unternehmen wie IBM, Red Hat, Google, Loongson, Huawei, ARM und SAP.

Veröffentlichung von Java SE 13

Quelle: opennet.ru

60GB SSD 8Gb DDR4