Cette nouvelle version fournit le kit 24 JDK Enhancement Proposals qui aide les développeurs à maximiser leur productivité et à améliorer le langage Java
Les améliorations apportées aux performances, à la stabilité et à la sécurité de la plateforme, aident les entreprises à croître plus rapidement.
Les nouvelles fonctionnalités en matière d’IA et de cryptographie post-quantique seront mises en avant lors de la conférence JavaOne 2025
AUSTIN, Texas & COLOMBES, France—19 mars 2025
Oracle annonce la disponibilité immédiate de Java 24, la nouvelle version du langage de programmation et de la plateforme de développement numéro un dans le monde. Java 24 (Oracle JDK 24) apporte des milliers d’améliorations pour aider les développeurs à optimiser leur productivité et à stimuler l’innovation. Les améliorations apportées aux performances, à la stabilité et à la sécurité de la plateforme aident les entreprises à accélérer leur croissance. Pour en savoir plus sur cette nouvelle version de Java, rendez-vous à la conférence JavaOne 2025 qui se tient à Redwood Shores, en Californie, du 18 au 20 mars 2025.
«Alors que Java fêtera son 30e anniversaire cette année, les outils continuent de progresser pour répondre aux besoins en constante évolution des développeurs, y compris les fonctionnalités qui prennent en charge le développement d’applications basées sur l’IA », constate Arnal Dayaratna, Research Vice President, Software Development, IDC. « Le large éventail de fonctionnalités de cette nouvelle version aidera à augmenter la productivité des développeurs, leur permettant de fournir plus rapidement et plus efficacement des applications riches en fonctionnalités à leurs organisations et clients. La version 24 de Java montre qu’il s’agit du langage sans équivalent pour le développement d’applications stratégiques adaptées à l’entreprise à grande échelle.»
« Depuis 30 ans, Java fournit aux développeurs une plateforme complète pour créer et déployer des applications qui répondent à un large éventail de cas d’utilisation », salue Georges Saab, Senior Vice President, Oracle Java Platform et Chair, OpenJDK Governing Board. « Avec plus de 20 nouvelles fonctionnalités couvrant tous les éléments de Java, y compris de nouvelles fonctionnalités d’IA et de cryptographie post-quantique, la version 24 de Java fournit aux développeurs les outils dont ils ont besoin pour créer des applications innovantes et boostées à l’IA. En tant que responsables de Java, nous sommes ravis de travailler avec la communauté Java mondiale pour continuer à fournir un flux constant de nouvelles fonctionnalités via notre rythme prévisible de six mois.»
Fonctionnalités du langage
JEP 488: Types primitifs dans les patterns, instanceof et switch (second aperçu) : aide les développeurs à augmenter leur productivité en rendant le langage Java plus uniforme et plus expressif. Cette fonctionnalité aide les développeurs à améliorer la correspondance de modèles en supprimant les restrictions relatives aux types primitifs que les développeurs rencontrent lors de l’utilisation du pattern matching, d’instanceof et de switch. Il autorise également les modèles de type primitif dans tous les contextes de modèle et étend instanceof et switch pour fonctionner avec tous les types primitifs. Les développeurs d’applications qui intègrent l’inférence d’IA bénéficieront notamment de la prise en charge des types primitifs.
JEP 492: Corps de constructeurs flexibles (troisième aperçu) : aide les développeurs à améliorer la fiabilité du code grâce à l’introduction de deux phases distinctes de prologue et d’épilogue dans un corps de constructeur. Cela permet aux développeurs de placer plus naturellement la logique qu’ils doivent actuellement prendre en compte dans des méthodes statiques auxiliaires, des constructeurs intermédiaires auxiliaires ou des arguments de constructeur. De plus, cette approche préserve la sauvegarde existante selon laquelle le code dans un constructeur de sous-classe ne peut pas interférer avec l’instanciation de superclasse, ce qui rend une classe plus fiable en cas de remplacement des méthodes.
JEP 494: Déclarations d’importation de modules (deuxième aperçu) : permet aux développeurs d’améliorer leur productivité en leur permettant d’importer rapidement et facilement tous les packages exportés par un module, sans que le code d’importation ne doive se trouver dans un module lui-même. Cela simplifie la réutilisation des bibliothèques modulaires pour tous les développeurs et aide les débutants à utiliser plus facilement des bibliothèques tierces et des classes Java fondamentales sans la nécessité de savoir où elles se trouvent dans une hiérarchie de packages. Cette fonctionnalité bénéficie également aux développeurs qui souhaitent intégrer rapidement la logique métier avec des appels d’inférence d’IA native, à une bibliothèque ou à des services.
JEP 495: Fichiers sources simples et méthodes principales d’instance (quatrième aperçu) : aide les apprenants à écrire leurs premiers programmes sans avoir à comprendre les fonctionnalités de langage conçues pour les grands programmes en offrant une migration fluide vers la programmation Java. En conséquence, les enseignants et les instructeurs peuvent introduire des concepts progressivement et les apprenants peuvent écrire des déclarations rationalisées pour les programmes de classe unique et étendre leurs programmes de manière transparente avec des fonctionnalités plus avancées au fur et à mesure que leurs compétences se développent. En outre, les développeurs Java expérimentés peuvent écrire de petits programmes succinctement et efficacement sans avoir besoin d’utiliser des outils conçus pour des projets plus importants.
Bibliothèques
JEP 485: Collecteurs de flux: aide les développeurs à devenir plus efficaces dans la lecture, l’écriture et la maintenance du code Java en améliorant l’API de flux pour prendre en charge les opérations intermédiaires personnalisées, ce qui permet aux pipelines de flux de transformer les données d’une manière difficilement réalisable avec les opérations intermédiaires intégrées existantes.
JEP 484: API de fichier de classe : aide les développeurs à améliorer leur productivité en fournissant une API standard pour l’analyse, la génération et la transformation des fichiers de classe Java et le suivi du format de fichier de classe défini par la spécification Java Virtual Machine.
JEP 487: Valeurs ciblées (quatrième aperçu) : améliore l’ergonomie, la compréhensibilité, les performances et la robustesse des projets des développeurs en permettant le partage de données immuables au sein des threads et entre eux.
JEP 489: API de vecteur (neuvième incubation) : aide les développeurs à améliorer la productivité en introduisant une API pour communiquer les calculs de vecteurs qui effectuent une compilation fiable lors de l’exécution pour vectoriser les instructions sur les architectures de processeurs prises en charge. Les développeurs peuvent ainsi obtenir des performances supérieures aux calculs scalaires équivalents, qui sont souvent utilisés dans les scénarios d’inférence et de calcul de l’IA.
JEP 499: Accès simultané structuré (quatrième aperçu) : aide les développeurs à améliorer la maintenabilité, la fiabilité et l’observabilité du code multithread en simplifiant la programmation simultanée via une nouvelle API pour les accès simultanés structurés. En traitant les groupes de tâches connexes exécutées dans différents threads comme une seule unité de travail, la simultanéité structurée peut aider à réduire les risques courants découlant de l’annulation et de l’arrêt, tels que les fuites de threads et les retards d’annulation.
Bibliothèques de sécurité
JEP 478: API de fonction de dérivation de clé (aperçu) : permet aux développeurs de se préparer aux environnements de calcul quantique émergents en offrant une sécurité cryptographique pour les données en transit. Cela améliore la confidentialité et l’intégrité de la communication.
JEP 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism : permet d’augmenter la sécurité des applications Java en fournissant une implémentation du mécanisme « Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism » (ML-KEM). Cette fonctionnalité est une étape importante vers la préparation post-quantique et la fourniture éventuelle de la prise en charge de la cryptographie post-quantique (PQC, « Post Quantum Crypto ») pour la plateforme Java, car les mécanismes d’encapsulation de clé sont utilisés pour sécuriser les clés symétriques sur les canaux de communication non sécurisés à l’aide de la cryptographie à clé publique.
JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm : permet d’augmenter la sécurité des applications Java en fournissant une implémentation de l’algorithme « Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm » (ML-DSA). Comme avec JEP 496, cette fonctionnalité est une étape importante vers la préparation post-quantique et la fourniture éventuelle de la prise en charge PQC pour la plateforme Java, car les signatures numériques sont utilisées pour détecter les modifications non autorisées des données et pour authentifier l’identité des signataires. ML-DSA est conçu pour se protéger contre les futures attaques de calcul quantique, et il a été normalisé par le National Institute of Standards and Technology (NIST) des États-Unis dans la norme FIPS 204.
Outils
JEP 493: Liaison d’images d’exécution sans JMOD : permet aux développeurs d’accroître leur efficacité en permettant à l’outil jlink de créer des images d’exécution personnalisées sans utiliser les fichiers JMOD du JDK, ce qui peut réduire la taille du JDK d’environ 25 %. Les développeurs peuvent ainsi lier une image d’exécution à partir de modules, que ces modules soient des fichiers JMOD autonomes, des fichiers JAR modulaires ou une partie d’une image d’exécution précédemment liée. Cette fonctionnalité doit être activée lors de la création du JDK ; elle ne sera pas activée par défaut et certains fournisseurs de JDK peuvent choisir de ne pas l’activer.
Mises à jour de performances et de temps d’exécution
JEP 450: Mises à jour de performances et de temps d’exécution : permet aux développeurs d’augmenter leur productivité en réduisant la taille des en-têtes d’objet dans la JVM HotSpot de 96 et 128 bits à 64 bits sur les architectures 64 bits. Cela permet de réduire la taille de la portion de mémoire, d’améliorer la densité de déploiement et d’augmenter la localisation des données.
JEP 475: Extension de barrière tardive pour G1 : permet aux développeurs d’augmenter leur efficacité en déplaçant l’extension des barrières du processus de nettoyage de la mémoire G1 du début du pipeline de compilation de C2 JIT vers une version ultérieure, ce qui peut réduire la surcharge si elle se produit après des optimisations indépendantes de la plateforme et l’allocation de registre. En simplifiant l’implémentation des barrières du nettoyage de la mémoire G1, cette fonctionnalité permet d’augmenter l’efficacité, la lisibilité, la résilience et la qualité du code généré par C2.
JEP 483: Chargement et liaison de classes en avance : permet aux développeurs d’augmenter la productivité et d’améliorer le temps de démarrage en rendant instantanément les classes d’une application disponibles dans un état chargé et lié au démarrage de la machine virtuelle Java Virtual Machine HotSpot. Cette fonctionnalité ne nécessite pas l’utilisation des outils jlink ou jpackage, et ne nécessite aucune modification de la façon dont les applications sont démarrées à partir de la ligne de commande ou toute modification du code des applications, bibliothèques ou frameworks. Elle contribue ainsi à jeter les bases d’améliorations continues du temps de démarrage et d’échauffement.
JEP 490: ZGC : suppression du mode non générationnel : permet aux développeurs de réduire le coût de maintenance de la prise en charge de deux modes différents en supprimant le mode non générationnel du Z Garbage Collector (ZGC).
JEP 491: Synchroniser les threads virtuels sans association : permet aux développeurs d’augmenter la productivité en étendant l’évolutivité du code Java et des bibliothèques qui utilisent des méthodes et des instructions synchronisées. En permettant aux threads virtuels de libérer les threads de plateforme sous-jacents, cette fonctionnalité permet aux développeurs d’accéder à davantage de threads virtuels pour gérer les workloads de leurs applications.
Source Code
JEP 404: Generational Shenandoah (expérimental) : aide les développeurs à augmenter la productivité grâce à l’amélioration du collecteur de déchets Shenandoah avec des fonctionnalités de collecte générationnelle expérimentales qui améliorent le débit durable, la résilience de pic de charge et l’utilisation de la mémoire.
JEP 479: Suppression du port x86 Windows 32 bits : aide les développeurs à augmenter leur efficacité en supprimant le code source et la prise en charge du port x86 Windows 32 bits, ce qui simplifie l’infrastructure de création et de test du JDK.
JEP 501: Dépréciation du port x86 32 bits en vue de sa suppression : aide les développeurs à augmenter leur productivité en dépréciant le port x86 32 bits en vue de le supprimer dans une prochaine version. Cela permet aux développeurs d’accéder à de nouvelles fonctionnalités qui nécessitent une prise en charge propre à la plateforme sans avoir à implémenter des solutions pour les plateformes x86 32 bits.
En outre, en introduisant des fonctionnalités modernes et sûres tout en dépréciant et en supprimant progressivement les fonctionnalités non sécurisées, Oracle souligne son engagement à maintenir l’intégrité de Java et à s’aligner sur les bonnes pratiques de développement logiciel. Oracle a désigné trois fonctionnalités qui seront supprimées dans une prochaine version de Java : JEP 472: Préparer pour restreindre l’utilisation de JNI ; JEP 486: Désactiver définitivement le gestionnaire de sécurité ; JEP 498: Avertir lors de l’utilisation de méthodes d’accès mémoire dans sun.misc.Unsafe.
Les fonctionnalités de Java 24 sont le fruit de la collaboration continue entre les ingénieurs d’Oracle et le reste de la communauté mondiale des développeurs Java via OpenJDK et le Java Community Process (JCP). Pour plus de détails sur les fonctionnalités de cette nouvelle version, vous pouvez lire l’article de blog technique sur Java 24.
Un support à toute la communauté mondiale Java avec de l’innovation dans le cloud
Java offre une innovation, des performances, une efficacité et des économies de coûts accrues lorsqu’il est déployé sur Oracle Cloud Infrastructure (OCI), l’un des premiers clouds à très grande échelle à prendre en charge Java 24. En proposant Oracle Java SE, Oracle GraalVM et le pack Java SE Subscription Enterprise Performance Pack sans coût supplémentaire sur OCI, Java 24 aide les développeurs à créer et déployer des applications qui s’exécutent plus rapidement et avec un rapport coût-performance optimal.
Java offre une innovation, des performances, une efficacité et des économies de coûts accrues lorsqu’il est déployé sur Oracle Cloud Infrastructure (OCI), l’un des premiers clouds à très grande échelle à prendre en charge Java 24. En proposant Oracle Java SE, Oracle GraalVM et le pack Java SE Subscription Enterprise Performance Pack sans coût supplémentaire sur OCI, Java 24 aide les développeurs à créer et déployer des applications qui s’exécutent plus rapidement et avec un rapport coût-performance optimal.
Citations
« J’attends avec impatience l’amélioration de l’API Java Vector dans Java 24, qui fera progresser les applications d’IA prédictive et générative », s’enthousiasme Frank Greco, Chairman, NYJavaSIG. « L’activation d’algorithmes d’IA efficaces directement dans Java permet de garantir que les applications d’IA seront hautement efficaces et évolutives sur diverses plateformes matérielles modernes. »
« Java 24 introduit Stream Gatherers, une amélioration puissante qui donne aux développeurs un contrôle précis sur la façon dont les éléments sont regroupés et traités dans les flux », se réjouit Richard Fichtner, CEO, XDEV Software GmbH. « Les transformations de données complexes sont ainsi plus expressives et plus efficaces. J’adore cette fonctionnalité, car elle élimine les solutions bancales comme les collecteurs personnalisés ou flatMap, permettant des pipelines de flux plus lisibles et maintenables. »
« Java est comme une sauce créée par un chef fabuleux, avec des ingrédients choisis avec soin, mijoté juste assez pour obtenir les meilleures saveurs », salue le Dr Venkat Subramaniam, Founder, Agile Developer, Inc. « Mes saveurs préférées actuelles sont l’API Stream Gatherers, les valeurs ciblées et la concurrence structurée. »
« Le troisième aperçu des constructeurs flexibles dans Java 24 est une caractéristique notable. Il sera très bénéfique de ne pas avoir à créer une méthode d’aide privée afin que je puisse faire des appels à this/super en une seule ligne », confie Jeanne Boyarsky, Developer, CodeRanch. « La fonctionnalité de collecte de flux est également intrigante. J’ai hâte que les bibliothèques proposent de nombreuses nouvelles opérations intermédiaires sur lesquelles s’appuyer. »
« À JetBrains, nous sommes ravis de fournir un support Java 24 dans IntelliJ IDEA dès le premier jour », se félicite Marit van Dijk, Java Developer Advocate, JetBrains. « Notre engagement à suivre le rythme des dernières améliorations Java permet aux développeurs d’adopter en toute transparence les précieuses nouvelles fonctionnalités. De plus, la possibilité de télécharger Java 24 directement dans l’IDE facilite la configuration. »
Pour en savoir plus sur Java et son écosystème mondial, rendez-vous sur :
Oracle propose des suites d’applications intégrées, ainsi qu’une infrastructure sécurisée et autonome dans Oracle Cloud. Pour en savoir plus sur Oracle (NYSE : ORCL), consultez le site www.oracle.com/fr/.
Clause de non-responsabilité relative aux produits à venir
Le contenu qui précède a pour vocation de présenter notre orientation générale concernant les produits. Il est fourni à titre purement informatif et ne peut être intégré dans un contrat. Il ne constitue aucunement un engagement à offrir l’un ou l’autre de ces produits, programmes ou fonctionnalités et ne doit pas servir de base pour la prise de décisions d’achat. Le développement, la publication, le calendrier et les tarifs des caractéristiques ou fonctionnalités exposés pour les produits Oracle sont susceptibles d’être modifiés et relèvent de la seule discrétion d’Oracle Corporation.
Marques déposées
Oracle, Java, MySQL et NetSuite sont des marques déposées d’Oracle Corporation. NetSuite est la première entreprise cloud à être entrée dans la nouvelle ère du cloud computing.