Oracle présente Java 18
mars 2022 par Patrick LEBRETON
Cette nouvelle version fournit de nombreuses améliorations en matière de performances, de stabilité et de sécurité, ainsi que neuf propositions d’améliorations du Java Development Kit
Oracle annonce la disponibilité de Java 18, la dernière version du premier langage de programmation et de la première plate-forme de développement au monde. Java 18 (Oracle JDK 18) fournit de nombreuses améliorations en matière de performances, de stabilité et de sécurité, dont neuf qui ont été apportées à la plate-forme pour lui permettre d’augmenter la productivité des développeurs.
La dernière version de Java Development Kit (JDK) contient des mises à jour et des améliorations ainsi que neuf propositions d’amélioration JDK (JEP). Elles permettent notamment d’ajouter des extraits de code dans la documentation d’API Java (JEP 413), simplifiant ainsi l’ajout d’un exemple de code source dans la documentation de l’API, et un serveur Web simple (JEP 408) pour le prototypage et le test. Les développeurs peuvent explorer deux modules d’incubation : l’API vectorielle (JEP 417) et l’API de mémoire et de fonction étrangère (JEP 419), ainsi qu’une fonctionnalité de prévisualisation : Pattern Matching for Switch (JEP 420).
Accélérer l’adoption de Java dans le cloud
Oracle a récemment présenté Java Management Service (JMS), un nouveau service natif d’Oracle Cloud Infrastructure (OCI) pour aider à gérer les exécutions et les applications Java sur site ou dans le cloud de son choix. JMS fournit les informations nécessaires à la gestion des déploiements Java dans toute l’entreprise. Java Management Service est inclus pour les workloads OCI et pour les abonnés Java SE.
Java 18 est la dernière version de Java qui est mise sur le marché tous six mois de Java ; elle est le fruit d’une collaboration étroite entre les ingénieurs d’Oracle et les autres membres de la communauté de développeurs Java dans le monde entier via le projet OpenJDK et le processus de communauté Java (JCP). Cela fournit un flux constant d’innovations tout en assurant des améliorations continues en matière de performances, de stabilité et de sécurité qui augmenteront l’envergure de Java dans les entreprises et les secteurs de toutes tailles. Les principales modifications intégrées à Java 18 sont les suivantes :
Mises à jour et améliorations apportées aux bibliothèques
– JEP 400 : UTF-8 par défaut : définit UTF-8 comme le jeu de caractères par défaut des API Java standard. Grâce à cette modification, les API qui dépendent du jeu de caractères par défaut se comporteront de manière cohérente dans toutes les implémentations, systèmes d’exploitation, environnements linguistiques et configurations.
– JEP 408 : Serveur Web simple – Outil de ligne de commande et API permettant de démarrer un serveur Web minimal qui sert uniquement des fichiers statiques. Cet outil sera utile pour le prototypage, le codage ad hoc et les tests, en particulier dans les contextes éducatifs.
– JEP 416 : Réimplémenter la réflexion principale avec les références de méthodes - Réimplémente java.lang.reflect.Method Constructor et Field ainsi que le champ au-dessus des références de méthode java.lang.invoke. En faisant fonctionner les références de méthodes du mécanisme de réflexion sous-jacent, elle réduit le coût de maintenance et de développement des API java.lang.reflect et java.lang.invoke.
– JEP 418 : Internet-Address Resolution SPI définit une interface de fournisseur de services (SPI) pour la résolution du nom d’hôte et de l’adresse, de sorte que java.net.InetAddress puisse utiliser des résolveurs autres que le résolveur intégré de la plate-forme.
Outils
– JEP 413 : Snippets de code JEP dans la documentation de l’API Java - introduit la balise @snippet pour le doclet standard de JavaDoc afin de simplifier l’inclusion d’un exemple de code source dans la documentation de l’API.
Aperçu et agents d’incubation pour les versions ultérieures de JDK
– JEP 417 : API vectorielle (Troisième Incubateur) : fournit aux développeurs une API leur permettant d’exploiter de manière fiable les architectures CPU qui fournissent des extensions vectorielles évolutives. Les performances seront ainsi supérieures à celles des calculs équivalents sur les processeurs non étendus.
– JEP 419 : API de mémoire et de fonction étrangère (deuxième incubateur) : permet aux programmes Java d’interagir avec du code et des données en dehors de l’exécution Java. En appelant efficacement des fonctions étrangères (c’est-à-dire du code en dehors de la JVM) et en accédant en toute sécurité à la mémoire étrangère (c’est-à-dire la mémoire non gérée par la JVM), l’API permet aux programmes Java de faire appel à des bibliothèques natives et de traiter des données natives sans la fragilité et les écueils de JNI.
– JEP 420 : Correspondance de modèles pour le switch (deuxième aperçu) : améliore le langage de programmation Java grâce à une correspondance de modèles pour les expressions et instructions switch, ainsi que les extensions du langage des modèles. L’extension de la correspondance de modèles pour changer permet de tester une expression en fonction d’un certain nombre de modèles, chacun comportant une action spécifique, de sorte que des requêtes complexes orientées données puissent être exprimées de manière concise et sécurisée.
Programmes Java à l’épreuve du temps
– JEP 421 : Dépréciation de la finalisation avant suppression - La finalisation reste activée par défaut pour le moment mais peut être désactivée pour faciliter les tests. Dans une prochaine version, elle sera désactivée par défaut et, dans une version ultérieure, elle sera supprimée. Les responsables des bibliothèques et des applications qui s’appuient sur la finalisation doivent envisager de migrer vers d’autres techniques de gestion des ressources, telles que le try-with-resources-statement ou les cleaners.
Prise en charge des clients Java
Oracle Java SE Subscription, une offre avec paiement à l’utilisation prévisible, fournit à nos clients le meilleur support de sa catégorie, le droit à GraalVM Enterprise, l’accès à Java Management Service et la flexibilité nécessaire pour les mettre à niveau selon le rythme de leur entreprise. Les services informatiques peuvent ainsi gérer la complexité, limiter les coûts et atténuer les risques de sécurité.