Version Java SE 13

Après six mois de développement, Oracle libéré la plateforme Java SE13 (Java Platform, Standard Edition 13), le projet open source OpenJDK est utilisé comme implémentation de référence. Java SE 13 maintient une compatibilité ascendante avec les versions précédentes de la plate-forme Java ; tous les projets Java précédemment écrits fonctionneront sans modification une fois lancés sous la nouvelle version. Versions Java SE 13 prêtes à installer (JDK, JRE et Server JRE) préparé pour Linux (x86_64), Solaris, Windows et macOS. Implémentation de référence développée par le projet OpenJDK Java 13 est entièrement open source sous licence GPLv2, avec des exceptions GNU ClassPath permettant une liaison dynamique avec des produits commerciaux.

Java SE 13 est classé comme version de support général et continuera à recevoir des mises à jour jusqu'à la prochaine version. La branche Long Term Support (LTS) devrait être Java SE 11, qui continuera à recevoir des mises à jour jusqu'en 2026. La précédente branche LTS de Java 8 sera prise en charge jusqu'en décembre 2020. La prochaine version LTS est prévue pour septembre 2021. Rappelons qu'à partir de la sortie de Java 10, le projet est passé à un nouveau processus de développement, impliquant un cycle plus court pour la formation des nouvelles versions. Les nouvelles fonctionnalités sont désormais développées dans une branche principale constamment mise à jour, qui comprend des modifications prêtes à l'emploi et à partir de laquelle des branches sont créées tous les six mois pour stabiliser les nouvelles versions. Java 14 devrait sortir en mars de l'année prochaine, avec déjà des versions préliminaires disponible pour tester.

De nouveautés Java 13 on peut marque:

  • Ajouté par prise en charge de l'ajout dynamique d'archives CDS (Class-Data Sharing), fournissant un accès d'application partagé aux classes communes. Avec CDS, les classes communes peuvent être placées dans une archive séparée et partagée, permettant aux applications de se lancer plus rapidement et de réduire les frais généraux. La nouvelle version ajoute des outils d'archivage dynamique des classes après la fin de l'exécution de l'application. Les classes archivées incluent toutes les classes et les bibliothèques associées chargées pendant le fonctionnement du programme qui ne figuraient pas dans l'archive CDS de base initialement fournie ;
  • Vers le ZGC (Z Garbage Collector) ajoutée prise en charge du retour de la mémoire inutilisée au système d'exploitation ;
  • Impliqué une implémentation repensée de l'API Legacy Socket (java.net.Socket et java.net.ServerSocket) qui est plus facile à maintenir et à déboguer. De plus, l'implémentation proposée sera plus facile à adapter pour fonctionner avec le nouveau système de threads dans l'espace utilisateur (fibres), développé dans le cadre du projet Loom ;
  • A continué développement d'une nouvelle forme d'expression "switch". Ajout de la possibilité expérimentale (Aperçu) d'utiliser « switch » non seulement sous la forme d'un opérateur, mais également sous la forme d'une expression. Par exemple, vous pouvez désormais utiliser des constructions telles que :

    int numLetters = switch (jour) {
    cas LUNDI, VENDREDI, DIMANCHE -> 6 ;
    cas MARDI -> 7 ;
    cas JEUDI, SAMEDI -> 8 ;
    cas MERCREDI -> 9 ;
    };

    ou

    System.out.println(
    interrupteur (k) {
    cas 1 -> "un"
    cas 2 -> "deux"
    par défaut -> "beaucoup"
    }
    );

    À l'avenir, sur la base de cette fonctionnalité est prévu mettre en œuvre la prise en charge de la correspondance de modèles ;

  • Ajouté par prise en charge expérimentale des blocs de texte - une nouvelle forme de chaînes littérales qui vous permettent d'inclure des données de texte multilignes dans votre code source sans utiliser d'échappement de caractères et en préservant le formatage d'origine du texte dans le bloc. Le bloc est encadré par trois guillemets doubles. Par exemple, au lieu de l'expression

    Requête de chaîne = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" +
    "OÙ `VILLE` = 'INDIANAPOLIS'\n" +
    "ORDER BY `EMP_ID`, `LAST_NAME`;\n";

    Vous pouvez maintenant utiliser la construction :

    Requête de chaîne = """
    SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
    OÙ `VILLE` = 'INDIANAPOLIS'
    ORDER BY `EMP_ID`, `LAST_NAME` ;
    """ ;

  • 2126 1454 rapports de bogues ont été clôturés, dont 671 XNUMX ont été résolus par des employés d'Oracle et XNUMX par des tiers, dont un sixième des modifications ont été apportées par des développeurs indépendants et le reste par des représentants d'entreprises telles qu'IBM, Red Hat, Google. , Loongson, Huawei, ARM et SAP.

Version Java SE 13

Source: opennet.ru

Ajouter un commentaire