Après six mois de développement, Oracle a annoncé la sortie de la nouvelle version de la plateforme Java SE 20 (Java Platform, Standard Edition 20), qui utilise le projet open source OpenJDK comme implémentation de référence.
Dans cette nouvelle version publiée de Java SE 20, à l’exception de la suppression de certaines fonctionnalités obsolètes, Java SE 20 maintient la rétrocompatibilité à partir de la plate-forme Java : la plupart des projets Java précédemment écrits continueront de fonctionner sans modification lorsqu’ils seront exécutés avec la nouvelle version.
Principales nouveautés de Java SE 20
Java SE 20 est classée comme une version de support standard, avec des mises à jour à publier avant la prochaine version. La branche de support à long terme (LTS) devrait être Java SE 17, qui recevra des mises à jour jusqu’en 2029.
Rappelez-vous qu’à partir de la version Java 10, le projet est passé à un nouveau processus de développement, ce qui implique un cycle plus court pour la formation de nouvelles versions. De nouvelles fonctionnalités sont désormais développées dans une branche principale constamment mise à jour, incorporant les modifications déjà apportées et bifurquant tous les six mois pour stabiliser les nouvelles versions.
Parmi les innovations de Java 20, il ressort qu’il a été proposé prise en charge préliminaire des valeurs délimitéesQuoi permet un partage de données immuable dans les threads et un échange de données efficace entre les threads enfants (les valeurs sont héritées).
Valeurs portées est développé pour remplacer le mécanisme des variables locales de thread et ils sont plus efficaces lorsqu’ils utilisent un grand nombre de threads virtuels (des milliers et des millions de threads). La principale différence entre les Scoped Values et les variables locales de thread est que les Scoped Values sont écrites une seule fois, ne peuvent pas être modifiées ultérieurement et ne restent disponibles que pendant l’exécution du thread.
Une autre des modifications présentées dans cette nouvelle version de Java SE 20 est que une deuxième mise en œuvre provisoire des modèles d’enregistrement a été ajoutée, qui étend la capacité de correspondance de modèles de Java 16 pour analyser les valeurs des classes de type record. Par exemple:
En plus de cela, il est également souligné que ajout d’une quatrième implémentation préliminaire de la correspondance de modèles dans les expressions de “switch”, qui permet aux balises “case” d’utiliser non pas des valeurs exactes, mais plutôt des modèles flexibles qui couvrent un certain nombre de valeurs à la fois, ce qui nécessitait auparavant des expressions de chaîne encombrantes comme “if…else” » .
Aussi, on retrouve dans cette nouvelle version, qui a ajouté un deuxième projet d’implémentation de l’API FFM (Fonction étrangère et mémoire) , qui vous permet d’orchestrer l’interaction des 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.
D’autre part, il convient de noter qu’une deuxième implémentation préliminaire de threads virtuels, qui sont des threads légers qui simplifient grandement l’écriture et la maintenance d’applications multithread hautes performances, a été ajoutée.
Une deuxième variante de l’API expérimentale de parallélisme structuré a été ajoutée pour simplifier le développement d’applications multithread en traitant plusieurs tâches exécutées sur différents threads comme une seule unité.
Un a été ajouté cinquième implémentation préliminaire de l’API Vector qui fournit des fonctions pour les calculs vectoriels exécutés à l’aide des instructions vectorielles des processeurs x86_64 et AArch64 et vous permet d’appliquer des opérations SIMD (Simultaneous Multi-Value).
Contrairement aux fonctionnalités fournies dans le compilateur HotSpot JIT pour la vectorisation automatique des opérations scalaires, la nouvelle API vous permet de contrôler explicitement la vectorisation pour le traitement parallèle des données.
Enfin, pour ceux qui sont intéressés par cette nouvelle version, sachez que les versions installables de Java SE 20 (JDK, JRE et Server JRE) sont préparées pour Linux (x86_64, AArch64), Windows (x86_64) et macOS (x86_64, AArch64) .
L’implémentation de référence de Java 20 développée par le projet OpenJDK, entièrement open source sous licence GPLv2 avec des exceptions GNU ClassPath qui permettent une liaison dynamique vers des produits commerciaux.