Version Java SE 19

Après six mois de développement, Oracle a publié Java SE 19 (Java Platform, Standard Edition 19), qui utilise le projet open source OpenJDK comme implémentation de référence. À l'exception de la suppression de certaines fonctionnalités obsolètes, Java SE 19 conserve une compatibilité ascendante avec les versions précédentes de la plate-forme Java : la plupart des projets Java précédemment écrits fonctionneront sans modification lorsqu'ils seront exécutés sous la nouvelle version. Des versions prêtes à l'installation de Java SE 19 (JDK, JRE et Server JRE) sont préparées pour Linux (x86_64, AArch64), Windows (x86_64) et macOS (x86_64, AArch64). Développée par le projet OpenJDK, l'implémentation de référence Java 19 est entièrement open source sous licence GPLv2, avec des exceptions GNU ClassPath permettant une liaison dynamique avec des produits commerciaux.

Java SE 19 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 17, qui continuera à recevoir des mises à jour jusqu'en 2029. 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.

Les nouvelles fonctionnalités de Java 19 incluent :

  • Une prise en charge préliminaire des modèles d'enregistrement a été proposée, étendant la fonctionnalité de correspondance de modèles introduite dans Java 16 avec des outils d'analyse des valeurs des classes d'enregistrement. 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); } }
  • Les versions Linux prennent en charge l'architecture RISC-V.
  • Ajout d'un support préliminaire pour l'API FFM (Foreign Function & Memory), qui vous permet d'organiser l'interaction de programmes Java avec du code et des données externes en appelant des fonctions à partir de bibliothèques externes et en accédant à la mémoire en dehors de la JVM.
  • Ajout de la prise en charge des threads virtuels, qui sont des threads légers qui simplifient considérablement l'écriture et la maintenance d'applications multithread hautes performances.
  • Un quatrième aperçu de l'API Vector a été proposé, fournissant des fonctions de calculs vectoriels exécutés à l'aide d'instructions vectorielles sur les processeurs x86_64 et AArch64 et permettant d'appliquer simultanément des opérations à plusieurs valeurs (SIMD). Contrairement aux fonctionnalités fournies par le compilateur HotSpot JIT pour la vectorisation automatique des opérations scalaires, la nouvelle API permet de contrôler explicitement la vectorisation pour le traitement parallèle des données.
  • Une troisième implémentation expérimentale de correspondance de modèles dans les expressions « switch » a été ajoutée, permettant l'utilisation dans les étiquettes « case » non pas de valeurs exactes, mais de modèles flexibles couvrant une série de valeurs à la fois, pour lesquelles il était auparavant nécessaire de utilisez des chaînes encombrantes d’expressions « si... sinon ». Objet o = 123L ; Chaîne formatée = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); cas Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); par défaut -> o.toString(); } ;
  • Ajout d'une API expérimentale pour le parallélisme structuré, qui simplifie le développement d'applications multithread en traitant plusieurs tâches exécutées dans différents threads comme un seul bloc.

Source: opennet.ru

Ajouter un commentaire