Chapitre 10 : Java 18-24
UTF-8, jwebserver, Switch pattern matching, Virtual Threads, Record Patterns, Scoped Values
Java 18
Ce qu'il faut retenir
L'encodage UTF-8 devient l'encodage par défaut
L'encodage UTF-8 devient l'encodage par défaut de la plateforme, tous OS et langues confondus !
jwebserver
Ajout d'un utilitaire accessible en ligne de commande nommé jwebserver, permettant de lancer un serveur HTTP rendant disponible un dossier, ses sous-dossiers et les fichiers qu'ils contiennent. Il est aussi possible d'utiliser l'API SimpleFileServer pour embarquer la fonctionnalité dans sa base de code. (quelques exemples)
Deuxième preview du Switch pattern matching
Deuxième preview du Switch pattern matching, avec deux améliorations majeures
Ajout de méthodes au JDK
Ajout de quelques méthodes au JDK : Duration.isPositive, plusieurs méthodes dans les classes Math et StrictMath
Support des blocs de code d'exemple dans JavaDoc
Les commentaires de JavaDoc supportent désormais les blocs de code d'exemple
Pour aller plus loin
- Dépréciation du mécanisme de finalisation complet
- Troisième incubation de la Vector API
- Deuxième incubation de la Foreign Function & Memory API
- Ajout d'un fournisseur de service autour de la résolution de noms DNS
- Uniformisation des APIs de réflection pour utiliser l'API MethodHandle
Java 19
Ce qu'il faut retenir
Preview feature : Threads Virtuels
Preview feature : Threads Virtuels (aussi connu sous le nom de Project Loom)
Preview feature : Record Patterns
Preview feature : Record Patterns, qui vient enrichir le pattern matching avec les bénéfices des records, comme la déstructuration de la valeur utilisée
Troisième preview du Switch pattern matching
Troisième preview feature : Switch pattern matching, avec l'introduction du mot-clé when (on dirait Kotlin, tiens ;))
Pour aller plus loin
- Mise en preview de la Foreign Function & Memory API
- Quatrième incubation de la Vector API
- Apparition de la Concurrence Structurée (en incubation)
- Portage du JDK sur l'architecture RISC-V
Java 20
Ce qu'il faut retenir
- Scoped Values (Incubation): Permet de partager des données immuables entre les threads d'une même tâche
- Record Patterns (Preview): Améliore le pattern matching en permettant de déconstruire les records
- Pattern Matching for switch (Quatrième preview): Ajoute des améliorations au pattern matching pour switch
- Foreign Function & Memory API (Preview): Permet d'interagir avec du code et des données en dehors de la JVM
- Virtual Threads (Deuxième preview): Threads légers et peu coûteux pour améliorer la concurrence
Pour aller plus loin
Vector API (Cinquième incubation): Améliore les performances des calculs vectoriels
Java 21
Ce qu'il faut retenir
- Virtual Threads (Standard) : Les threads virtuels sortent de la preview et sont intégrés au standard Java
- Scoped Values (Preview) : Deuxième preview avec des améliorations
- Record Patterns (Standard) : Les record patterns sortent de la preview
- Pattern Matching for switch (Standard) : Le pattern matching pour switch sort de la preview
- String Templates (Preview) : Permet d'intégrer des expressions dans les chaînes de caractères
- Sequenced Collections : Ajoute des interfaces pour représenter des collections ordonnées
- Unnamed Classes and Instance Main Methods (Preview) : Simplifie l'écriture de petits programmes
Pour aller plus loin
- Foreign Function & Memory API (Deuxième preview)
- Vector API (Sixième incubation)
- Key Encapsulation Mechanism API
- Deprecate the Windows 32-bit x86 Port
Java 22-24
Java 22
Scoped Values (Deuxième preview), Foreign Function & Memory API (Troisième preview), Vector API (Septième incubation)
Java 23
Scoped Values (Troisième preview), Foreign Function & Memory API (Preview), Vector API (Huitième incubation)
Java 24
Scoped Values (Quatrième preview), Synchronisation des Virtuals Threads sans "pinning", Vector API (Neuvième incubation)