Oracle publie Java 27 : cette nouvelle version du langage de programmation apporte neuf améliorations au JDK visant à stimuler la productivité et à améliorer les performances des applications
Oracle a récemment annoncé la mise à disposition générale du JDK 27 pour les développeurs, les entreprises et les utilisateurs finaux. Le JDK 27 apporte neuf améliorations suffisamment importantes pour faire l’objet de propositions d’amélioration du JDK (JEP), dont quatre fonctionnalités en avant-première et une fonctionnalité en phase d’incubation. Ces fonctionnalités couvrent des innovations apportées au langage Java, des avancées en matière de sécurité, de performances et d’exécution, ainsi que des améliorations des bibliothèques.
Java est un langage de programmation de haut niveau, polyvalent, à sécurité mémoire et orienté objet. Il est conçu pour permettre aux programmeurs d’écrire une seule fois et d’exécuter partout (WORA), ce qui signifie que le code Java compilé peut s’exécuter sur toutes les plateformes prenant en charge Java sans qu’il soit nécessaire de le recompiler. Les applications Java sont généralement compilées en bytecode pouvant s'exécuter sur n'importe quelle machine virtuelle Java (JVM), quelle que soit l'architecture informatique sous-jacente. La syntaxe de Java est similaire à celle du C et du C++, mais dispose de moins de fonctionnalités de bas niveau que ces deux langages. Le runtime Java offre des capacités dynamiques (telles que la programmation réflexive (réflexion) et la modification de code à l'exécution) généralement indisponibles dans les langages compilés traditionnels.
Le Java Development Kit (JDK) est un kit de développement logiciel destiné à la création d'applications pour la plate-forme Java. Le JDK est principalement conçu pour communiquer avec l'environnement d'exécution Java (JRE), mais il peut être remplacé par d'autres langages basés sur le JDK capables de communiquer avec le JRE et la JVM. De plus, le bytecode Java peut être compilé de manière statique directement en code natif à l'aide d'une JVM uniquement, sans qu'il soit nécessaire que l'environnement d'exécution Java s'exécute de manière dynamique.
Oracle a récemment annoncé la mise à disposition générale du JDK 27 pour les développeurs, les entreprises et les utilisateurs finaux. Le JDK 27 apporte neuf améliorations suffisamment importantes pour faire l’objet de propositions d’amélioration du JDK (JEP), dont quatre fonctionnalités en avant-première et une fonctionnalité en phase d’incubation. Ces fonctionnalités couvrent des innovations apportées au langage Java, des avancées en matière de sécurité, de performances et d’exécution, ainsi que des améliorations des bibliothèques.
Voici les principales améliorations de cette version :
Sécurité
Échange de clés hybride post-quantique pour TLS 1.3
Renforcez la sécurité des applications Java nécessitant des communications réseau sécurisées en implémentant des algorithmes d’échange de clés hybrides pour TLS 1.3. Ces algorithmes protègent contre les futures attaques par informatique quantique en combinant un algorithme résistant à l’informatique quantique avec un algorithme traditionnel. Les applications utilisant les API javax.net.ssl bénéficieront par défaut de ces algorithmes améliorés, sans modification du code existant.
Encodages PEM d’objets cryptographiques (troisième preview)
Permet aux développeurs d’améliorer leur productivité et de renforcer la sécurité des applications Java pour les formats de sécurité largement utilisés grâce à une nouvelle API d’encodage. L’API encode les objets représentant des clés cryptographiques, des certificats et des listes de révocation de certificats au format PSTN (Privacy-Enhanced Mail Transport), largement utilisé, puis les décode à nouveau en objets. Cela réduit le risque d’erreurs, simplifie la mise en conformité et améliore la portabilité et l’interopérabilité des applications Java sécurisées en rationalisant la configuration et l’intégration de la cryptographie pour répondre aux besoins des entreprises, du cloud et des réglementations.
Innovation du langage
Types primitifs dans les motifs, instanceof et switch (cinquième preview)
Permet aux développeurs d’augmenter leur productivité et de rationaliser le développement d’applications intégrant l’inférence IA en rendant Java plus uniforme et plus expressif. Elle élimine plusieurs restrictions relatives aux types primitifs qui constituent un frein lors de l’utilisation de la correspondance de motifs, de l’opérateur instanceof et de la structure switch. Afin d’aider les développeurs à améliorer encore leur productivité, elle renforce également la définition de l’exactitude inconditionnelle et applique des contrôles de dominance plus stricts dans les constructions switch, permettant ainsi au compilateur d’identifier et de réduire un plus large éventail d’erreurs de codage.
Améliorations des performances
Faire de G1 le ramasse-miettes par défaut dans tous les environnements
Faire du ramasse-miettes Garbage-First (G1) le ramasse-miettes par défaut dans tous les environnements, et non plus uniquement dans les environnements serveur. Lorsqu’aucun ramasse-miettes n’est spécifié sur la ligne de commande :
- La JVM HotSpot sélectionnera toujours G1.
- Dans les scénarios où la JVM sélectionnait auparavant le ramasse-miettes Serial, les indicateurs de performance (débit, latence, empreinte mémoire et temps de démarrage) ne devraient pas se dégrader de manière significative.
En-têtes d’objets compacts par défaut
Faire des en-têtes d’objets compacts la structure d’en-tête d’objet par défaut dans la JVM HotSpot. Les en-têtes d’objets compacts réduisent la taille des en-têtes d’objets de 96 bits à 64 bits sur les architectures 64 bits, ce qui réduit la taille du tas, améliore la densité de déploiement et augmente la localité des données.
Améliorations des bibliothèques
Constantes paresseuses (troisième preview)
Permet aux développeurs d’accroître leur productivité et l’efficacité de l’utilisation des ressources en leur offrant une plus grande flexibilité quant au moment de leur initialisation, ce qui est particulièrement utile pour les applications d’IA et celles basées sur les données. Grâce à une nouvelle API pour les constantes paresseuses, qui sont des objets contenant des données non modifiables, la JVM traite ces constantes comme de véritables constantes afin d’offrir les mêmes performances que la déclaration d’un champ final. De plus, en permettant aux applications Java et à leurs services cloud natifs et basés sur l’IA de démarrer plus rapidement et d’utiliser les ressources de calcul plus efficacement, cela aide les développeurs à réaliser des déploiements agiles et évolutifs pouvant se traduire par des économies et une meilleure expérience pour les utilisateurs finaux.
Concurrence structurée (septième preview)
Aide les développeurs à améliorer la maintenabilité, la fiabilité et l’observabilité du code multithread, ce qui est particulièrement bénéfique pour améliorer l’évolutivité et la résilience des charges de travail liées à l’IA et au cloud natif. Elle simplifie la programmation concurrente via une API de concurrence structurée, qui traite les groupes de tâches liées s’exécutant dans différents threads comme une seule unité de travail et contribue à réduire les risques courants liés à l’annulation et à l’arrêt, tels que les fuites de threads et les retards d’annulation.
API vectorielle (12e version Incubator)
Aide les développeurs à améliorer les performances et la rentabilité de leurs applications Java en leur permettant d’offrir davantage d’informations et de valeur ajoutée avec moins de matériel. L’API vectorielle exprime des calculs vectoriels qui se compilent de manière fiable lors de l’exécution en instructions vectorielles optimales sur les architectures de processeurs prises en charge, ce qui se traduit par un traitement plus rapide pour l’analyse de données, l’inférence d’IA et les charges de travail de calcul scientifique. Cela permet aux développeurs d’atteindre des performances supérieures à celles des calculs scalaires équivalents souvent utilisés dans les scénarios d’inférence IA et de calcul.
Outils
Masquage des données en cours de traitement dans JFR
Améliore le JDK Flight Recorder (JFR) afin de masquer les arguments de ligne de commande ainsi que les valeurs initiales des variables d’environnement et des propriétés système dans les enregistrements. Ces données sont masquées avant de quitter le processus, ce qui contribue à empêcher la fuite d’informations sensibles via les données de diagnostic.
Rappel sur les fonctionnalités « Preview », « Experimental » et « Incubator »
Les fonctionnalités « Preview » sont des fonctionnalités de langage ou de machine virtuelle (VM) de la plate-forme Java SE entièrement spécifiées et implémentées, mais qui ne sont pas encore définitives. Elles sont mises à disposition dans les versions « Feature Release » du JDK afin de recueillir les retours des développeurs sur la base d’utilisations en conditions réelles, avant de devenir définitives dans une future version. Cela permet également aux éditeurs d’outils de travailler à la prise en charge de ces fonctionnalités avant qu’elles ne soient finalisées dans la norme Java SE. Les fonctionnalités expérimentales sont des fonctionnalités à un stade précoce, principalement au niveau de la machine virtuelle (VM), qui sont encore en cours de développement et de test et qui servent à recueillir des retours d’expérience précoces sur des améliorations potentiellement significatives de la machine virtuelle HotSpot. Les API des modules « Incubator » mettent à la disposition des développeurs et des utilisateurs des API et des outils non définitifs afin de recueillir des retours d’expérience qui permettront, à terme, d’améliorer la qualité de la plate-forme Java.
Améliorations du JDK hors JEP
Outre les neuf JEP, Java 27 propose des dizaines d’améliorations qui aident les organisations à renforcer la sécurité, la fiabilité et les performances de leurs applications. Ces mises à jour permettent une adaptation aux mises à jour et aux normes des systèmes d’exploitation et des micrologiciels sous-jacents. Les utilisateurs et les développeurs d’applications bénéficient généralement de ces changements sans s’en rendre compte ; consultez les notes de version du JDK 27 pour découvrir l’ensemble complet des améliorations hors JEP.
Parmi les améliorations du JDK 27 qui méritent d’être mentionnées, citons le renforcement des fondements de la cryptographie post-quantique de Java grâce à la mise à jour des encodages de clés privées ML-KEM et ML-DSA ; des gains de performances significatifs pour les algorithmes ML-KEM, ML-DSA, X25519 et Ed25519 ; ainsi qu’une nouvelle visibilité en exécution sur les propriétés de sécurité actives via la commande jcmd VM.security_properties. D’autres mises à jour en matière de sécurité et de cryptographie améliorent l’efficacité du protocole TLS, la visibilité en exécution ainsi que la gestion des certificats et des clés, aidant ainsi les organisations à exploiter leurs applications Java avec davantage de sécurité et de confiance. Ensemble, ces mises à jour contribuent à faire progresser encore davantage la sécurité, l’agilité cryptographique et la préparation opérationnelle de Java, alors que les organisations se préparent aux futures exigences de sécurité.
Les performances et l’efficacité des applications sont améliorées grâce à un large ensemble de mises à jour portant sur la JVM, le compilateur, le ramasse-miettes et les E/S. Parmi les améliorations, on peut citer les mises à jour du dimensionnement du tas G1, les travaux d’optimisation de C2 et de l’API Vector, des opérations d’E/S de fichiers et natives plus efficaces, ainsi que des améliorations des algorithmes vectoriels, telles qu’une nouvelle implémentation du produit scalaire utilisant des opérations de multiplication-addition fusionnées. Ces mises à jour permettent aux applications Java de s’exécuter plus efficacement dans le cloud, les microservices, l’analyse de données et les charges de travail basées sur l’IA, contribuant ainsi à un meilleur débit, une meilleure évolutivité et une meilleure efficacité de l’infrastructure.
Les développeurs et les administrateurs bénéficient également d’améliorations qui facilitent le diagnostic, la gestion et la maintenance des applications Java en production. Les vidages de thread au format JSON émettent désormais les identifiants de clés et les comptes sous forme de nombres JSON, ce qui améliore la lisibilité par les machines pour les outils de surveillance et de réponse aux incidents. Les diagnostics de la machine virtuelle (VM) signalent désormais les descripteurs de fichiers ouverts, aidant ainsi les équipes à identifier plus rapidement les problèmes de ressources, tandis que la saisie semi-automatique Bash pour jcmd contribue à améliorer la productivité des administrateurs. D’autres améliorations apportées au routage HttpServer, au comportement de JavaDoc, au formatage ISO-8601, aux données de locale CLDR, à la validation du code source et au comportement de ServiceLoader contribuent à réduire les difficultés rencontrées par les développeurs, à améliorer la fiabilité et à renforcer le cycle de vie global des applications Java.
Portefeuille Java Verified : versions et mises à jour
Helidon 27 fait progresser les microservices Java natifs du cloud
Helidon 27 s’aligne sur la version JDK 27 et le rythme de publication d’OpenJDK, renforçant ainsi son rôle au sein du portefeuille Oracle Java Verified (JVP) en tant que framework soutenu par Oracle pour la création de microservices Java natifs du cloud et d’applications basées sur l’IA. Helidon continue de s’appuyer sur les capacités Java modernes telles que les threads virtuels, aidant les développeurs à créer des services hautement concurrents avec un code plus simple et une meilleure efficacité des ressources.
Helidon 27 améliore la productivité des développeurs et l’intégration en entreprise grâce à des API déclaratives, à Helidon Data JDBC, à Helidon Messaging, à une télémétrie améliorée, à la conformité avec MicroProfile et à des mises à jour en matière d’intégration des données. Ces fonctionnalités aident les développeurs Java à créer des microservices prêts pour la production et des services d’applications d’entreprise en utilisant la plateforme Java qu’ils connaissent déjà. Téléchargez la dernière version d’Helidon sur helidon.io.
JavaFX 27 continue de briller pour les applications client Java riches
JavaFX 27 s'aligne sur le cycle de publication du JDK 27 et continue d'offrir un framework moderne d'applications client Java permettant de créer des expériences utilisateur riches et interactives. Parmi les points forts, citons le pipeline de rendu Metal sur macOS pour des performances plus fluides sur le matériel Apple moderne, des contrôles d'édition de texte plus riches et des améliorations continues en matière d'accessibilité.
Dans le cadre du portefeuille Java Verified, JavaFX offre aux clients de l’abonnement Oracle Java SE Universal une voie prise en charge pour créer et maintenir des interfaces utilisateur Java sophistiquées, notamment des tableaux de bord analytiques, des consoles opérationnelles et des outils de visualisation de données qui prennent en charge les expériences applicatives d’entreprise modernes et basées sur l’IA.
L’extension Oracle Java Platform pour Visual Studio Code évolue avec la plateforme Java
L’extension Oracle Java Platform pour Visual Studio Code continue d’aider les développeurs à créer, exécuter, déboguer, tester et moderniser des applications Java dans VS Code, tout en prenant en charge l’accès au dernier JDK Oracle et aux versions en accès anticipé. Les mises à jour récentes contribuent à améliorer l’expérience développeur au niveau des notebooks, des paramètres de configuration d’exécution, de la configuration Maven, du formatage et des workflows de téléchargement du JDK.
Faisant partie du portefeuille Java Verified, cette extension offre aux clients de l’abonnement Oracle Java SE Universal une expérience de développement prise en charge par Oracle, leur permettant d’adopter les nouvelles versions et fonctionnalités Java en toute confiance.
Oracle Jipher 20 aide les applications Java à répondre aux exigences de la norme FIPS 140 et est désormais inclus dans le JVP
Oracle Jipher 20 encapsule un module cryptographique OpenSSL validé selon la norme FIPS 140-3 pour les applications Java et est désormais inclus dans le Java Verified Portfolio, offrant ainsi un support et une gouvernance assurés par Oracle, ainsi qu’une meilleure visibilité sur la feuille de route. Jipher 20 ajoute la prise en charge des nouvelles versions du JDK, des algorithmes post-quantiques ML-KEM et ML-DSA, des fonctions KDF et HKDF via les API Java standard, ainsi que l’intégration d’OpenSSL basée sur FFM à partir du JDK 25. Pour en savoir plus, consultez le blog Oracle Jipher 20.
Soutenir la communauté Java mondiale grâce à l’innovation dans le cloud
Java offre davantage d’innovation, de performances, d’efficacité et de réductions de coûts lorsqu’il est déployé sur OCI, premier fournisseur de cloud à prendre en charge Oracle JDK 27. En proposant Oracle Java SE et des fonctionnalités avancées telles que le Java Management Service sans frais supplémentaires sur OCI, Java 27 aide les développeurs à créer et à déployer des applications qui s’exécutent plus rapidement dans le cloud, avec de meilleures performances et un rapport coût-performance optimisé.
L’abonnement Oracle Java SE Universal offre aux clients une assistance de premier ordre. Il inclut désormais le portefeuille Java Verified, en plus de l’abonnement Java SE Enterprise Performance Pack, du Java Management Service, d’une assistance de triage pour l’ensemble du portefeuille Java et de la flexibilité nécessaire pour effectuer des mises à niveau au rythme de l’activité des clients. Cela aide les équipes informatiques à gérer la complexité, à atténuer les risques de sécurité et à maîtriser les coûts.
Prévisibilité
Le JDK 27 est la 18e version fonctionnelle livrée dans les délais, conformément au cycle de publication semestriel. Ce niveau de prévisibilité permet aux développeurs de gérer facilement l’adoption des innovations grâce à un flux constant d’améliorations.
Java continue d’évoluer en tant que plateforme de confiance, offrant les performances, la stabilité et la sécurité dont les entreprises ont besoin pour exécuter et moderniser leurs applications critiques. Oracle fournira des mises à jour pour le JDK 27 jusqu’en mars 2027, date à laquelle il sera remplacé par l’Oracle JDK 28. Depuis ces débuts, le 23 mai 1995, Java est rapidement devenu « un pilier de l’informatique d’entreprise ». Java est toujours l’un des langages les plus populaires au monde, classé régulièrement dans le top 5 par l’indice Tiobe.
Source : Annonce de Java 27
Et vous ?
Pensez-vous que cette version est crédible ou pertinente ?
Quel est votre avis sur le sujet ?
Voir aussi :
Oracle lance Java 26, la dernière version du langage de programmation et de la plateforme de développement, avec des améliorations axées sur l'intégration de l'IA, le chiffrement et la productivité
Python reste numéro 1, R gagne en popularité et atteint son meilleur classement historique avec la 8e place, Java a pris de l'élan avec Java 26, tandis que MATLAB et SAS sont les grands perdants, selon TIOBE
Près de 75 % des utilisateurs d'Oracle Java ont fait l'objet d'un audit de conformité logicielle au cours des trois dernières années, les coûts élevés de licence les poussent vers les alternatives open source








Pensez-vous que cette version est crédible ou pertinente ?
Répondre avec citation
Partager