Publication de Java SE 19

Après six mois de développement, Oracle a lancé la plateforme Java SE 19 (Java Platform, Standard Edition 19), dont la référence est le projet open-source OpenJDK. À l'exception de la suppression de certaines fonctionnalités obsolètes, Java SE 19 conserve la compatibilité ascendante avec les versions précédentes de la plateforme Java — la plupart des projets Java déjà écrits fonctionneront sans modifications avec la nouvelle version. Des builds prêtes à installer de Java SE 19 (JDK, JRE et Server JRE) sont disponibles pour Linux (x86_64, AArch64), Windows (x86_64) et macOS (x86_64, AArch64). La mise en œuvre de référence de Java 19, développée dans le cadre du projet OpenJDK, est entièrement open-source sous la licence GPLv2 avec des exceptions de GNU ClassPath, permettant la liaison dynamique avec des produits commerciaux.

Java SE 19 est classé parmi les versions à cycle de support normal, avec des mises à jour publiées jusqu'à la prochaine version. Pour un support à long terme (LTS), Java SE 17 doit être utilisé, avec des mises à jour publiées jusqu'en 2029. Rappelons qu'à partir de la version Java 10, le projet a adopté un nouveau processus de développement, impliquant un cycle de formation de nouvelles versions plus court. La nouvelle fonctionnalité est désormais développée dans une branche master mise à jour en permanence, qui intègre des modifications prêtes et à partir de laquelle des branches de stabilisation pour nouvelles versions sont créées tous les six mois.

Parmi les nouveautés de Java 19, on peut noter :

  • Un soutien préliminaire pour les modèles d'enregistrement (record pattern), élargissant la possibilité de correspondance de modèle introduite dans Java 16 pour l'analyse des valeurs des classes de type record. Par exemple : record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • Dans les builds pour Linux, un support de l'architecture RISC-V a été ajouté.
  • Un support préliminaire pour l'API FFM (Foreign Function & Memory) a été inclus, permettant d'organiser l'interaction des programmes Java avec du code et des données externes via l'appel de fonctions à partir de bibliothèques externes et l'accès à la mémoire en dehors de la JVM.
  • Un support pour les flux virtuels a été ajouté, représentant des flux légers qui simplifient considérablement l'écriture et la maintenance d'applications multithread performantes.
  • Une quatrième implémentation préliminaire de l'API Vector a été proposée, fournissant des fonctionnalités pour les calculs vectoriels qui sont exécutés à l'aide des instructions vectorielles des processeurs x86_64 et AArch64, permettant d'appliquer simultanément des opérations à plusieurs valeurs (SIMD). Contrairement aux capacités d'auto-vectorisation des opérations scalaires fournies par le compilateur JIT HotSpot, la nouvelle API permet de gérer explicitement la vectorisation pour le traitement parallèle des données.
  • Une troisième implémentation expérimentale de la correspondance de motifs dans les expressions « switch » a été ajoutée, permettant d'utiliser des motifs flexibles dans les étiquettes « case », couvrant une série de valeurs pour lesquelles il était auparavant nécessaire d'utiliser de lourdes chaînes d'expressions « if...else ». Object o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Une API expérimentale pour le parallélisme structuré a été ajoutée, simplifiant le développement d'applications multithread grâce à la gestion de plusieurs tâches exécutées dans différents fils d'exécution comme un bloc unique.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster