Java 17 : quelques points-clés de cette nouvelle LTS

Java 17

Classes scellées, filtres de désérialisation, gestion de la virgule flottante… Panorama de quelques-unes des fonctionnalités de Java 17.

Retour aux sources avec Java 17 ? En tous cas pour les calculs en virgule flottante. La sémantique d’origine, dite stricte, est restaurée. Destinée à garantir des résultats reproductibles sur toutes les plates-formes, elle avait fait l’objet de modifications à la fin des années 90, essentiellement en raison de particularités des coprocesseurs x87. Le problème a disparu avec les instructions SSE2.

À l’inverse, un élément présent au début de l’aventure Java disparaît. En l’occurrence, le gestionnaire de sécurité. Rarement utilisé sur le code serveur, explique Oracle… et de moins en moins sur le code client.

Au rang des composants obsolètes, il y a aussi l’API Applet. Sa suppression ne devrait plus tarder, en conséquence du retrait du support des plug-in Java dans les navigateurs.

Autre disparition imminente : celle du pipeline OpenGL pour le rendu 2D sur Mac. À la place, Java utilisera l’API Metal.

Toujours sur Mac, on a droit à un portage AArch64 (Apple Silicon). Comme il en existe pour Linux (disponible) et Windows (en développement).

Java 17 concrétise les classes scellées

Parmi les autres implémentations finalisées avec Java 17, on peut noter :

  • Des améliorations sur l’usage des générateurs de nombres pseudo-aléatoires
    Principal objectif : diversifier les algorithmes exploitables.
  • Les classes scellées
    En aperçu depuis Java 15. Elles mettent en œuvre un système d’autorisations pour limiter leur extensibilité.
  • Des filtres de désérialisation contextuels
    Dynamiques, ils fonctionnent à l’échelle de la VM. Ils remplacent, notamment, les filtres statiques qu’avait introduits Java 9.

En tant que LTS, Java 17 bénéficiera de 8 ans de support. En tout cas jusqu’à nouvel ordre. Java 8, par exemple, a vu, l’an dernier, sa prise en charge étendue jusqu’à décembre 2030. La conséquence d’un usage encore répandu, en particulier du fait des changements importants qu’implique le passage à Java 11.

support Java Oracle

Du côté d’Oracle, on a mis en place une URL statique qui pointera de façon permanente vers la dernière version de JDK 17.

Illustration principale © Casimiro – Adobe Stock