Skip to main content

Chapitre 8 : Java 16

Records, Pattern matching instanceof, Sealed Classes, Relaxed strong encapsulation

Ce qu'il faut retenir

Sortie de preview des Records

Sortie de preview des Records

Sortie de preview du Pattern matching instanceof

Sortie de preview du Pattern matching instanceof

Preview feature : Sealed Classes (seconde version)

Preview feature (seconde version) : Sealed Classes

Relaxed strong encapsulation désactivée par défaut

La relaxed strong encapsulation introduite lors de l'arrivée de Java 9 et Jigsaw est désormais désactivée par défaut. Tout accès à des éléments non publics ou protégés au sein des classes internes au JDK à l'exécution déclenche désormais une exception. Auparavant, un message d'avertissement était affiché en console notifiant d'un "accès illégal".

Pour aller plus loin

Évolutions supplémentaires sur ZGC

Évolutions supplémentaires sur ZGC permettant la mise en concurrence de la majorité des phases de garbage collection, permettant sur des heaps de n'importe quelle taille des pauses inférieures à la milliseconde

Apparition de l'Elastic Metaspace

Apparition de l'Elastic Metaspace, auparavant de taille fixe. Cela permet désormais de rendre une partie de la mémoire non utilisée au système d'exploitation

Apparition de la Foreign Linker API

Apparition de la Foreign Linker API (en incubation) au sein du projet Panama, aux côtés de la Foreign Memory Access API. Cette nouvelle API est destinée à terme à remplacer Java Native Access en permettant de lier Java à des librairies natives sans avoir à créer du code C supplémentaire, nécessaire auparavant.

Apparition de l'API Vector

Apparition de l'API Vector (en incubation) au sein du projet Panama afin de faciliter l'utilisation au sein de Java du calcul vectoriel sur les processeurs supportant les instructions SIMD (Simple Instruction Multiple Data). Ces instructions sont souvent très utilisées dans l'informatique à haute performance, ou l'intelligence artificielle.

Apparition de messages d'avertissement pour value-based classes

Apparition de messages d'avertissement dès lors qu'on essaye d'instancier soi-même, ou d'utiliser pour la synchronisation des value-based class (types "wrapper", Optionals, quelques classes de l'API Date…)

Support des sockets Unix

Support des sockets Unix pour la communication inter-processus