
- Durée
- 3 jours
- Niveau
- Intermédiaire
- Modalités
- Présentiel / Distanciel
Description de la formation Nouveautes Java 11 21
Les versions Java 11, Java 17 et Java 21 sont des versions LTS (Long Term Support), comme Java 8 et Java 11, utilisables en production, contrairement aux versions 9, 10, 12, 18, 19, 20… destinées aux développeurs pour leur permettre de se familiariser avec des nouveautés dont certaines seront retenues dans les versions LTS suivantes.
Java 11, sorti en septembre 2018, comporte les nouveautés de Java 9 à Java 11, bouleverse les habitudes par l'aspect commercial lié aux licences Oracle et propose de rendre modulaire les nouvelles applications.
Java 17 et Java 21, sortis respectivement en septembre 2021 et en septembre 2023, consolident toutes les nouveautés depuis java 11, notamment les records et les classes scellées et les threads virtuels et les record patterns.

Objectifs pédagogiques
À l'issue de cette formation, vous aurez acquis les connaissances et compétences nécessaires pour :
- Connaître, version après version, les nouveautés apportées aux dernières versions LTS de Java
- Mettre en pratique les nouveautés significatives et les plus importantes
- Connaître quelles sont les nouveautés apportées à la version précédente
Objectifs opérationnels
Savoir maîtriser les nouvelles fonctionnalités depuis Java 11 jusqu'à Java 21.
Programme
Contenu du cours, module par module
3 modules
Les licences Oracle
- Nouvelle gestion des versions de Java
- Commercialisation du JDK 11 par Oracle
- Conséquences du Long Term Support d'Oracle
- JDK11 d'Oracle vs Open JDK 11
Les modules
- Notion de module
- Format du descripteur de module
- Utilisation des modules
- Gestion des dépendances entre modules
- Intérêt du module-path
- Notions de modules anonymes et modules automatiques
- Mise en œuvre de services
- Modularité du JDK
- Nouvelle organisation de la documentation des API Java
- Problématique des migrations
- L’outil jdeps
Fichiers Jar
- Fichiers jar modulaires
- Fichiers jar multi-versions
- Intérêt du format jmod
- Rôle du linker Java Jlink dans le déploiement d'applications Java
- Création de fichiers jar modulaires pour servir de librairies
- Création de fichiers jar multi-versions pour servir de librairies
- Création d'une image exécutable avec Jlink
Autres nouveautés dans Java 11
- Exécution de scripts Java avec JShell
- Mise à jour de l'API Process
- Méthodes privées dans les interfaces
- Méthodes de fabrique pour les collections
- Nouvelles méthodes dans l'API Stream
- Amélioration de l'instruction try-with-resource
- Annotation @SafeVarargs
- Programmation réactive avec l'API Flow
- Déduction du type des variables locales avec var
- Nouvelles méthodes de fabrique pour les collections
- Nouvelles méthodes dans la classe Collectors
- Nouvelle méthode dans la classe Optional
- Nouvelles méthodes dans la classe Objects
- Support du protocole HTTP/2 et intégration des WebSockets
- Exécution directe d'un fichier source
Travaux pratiques
Mise en œuvre de modules anonymes et automatiques
Mise en œuvre de services
Travaux pratiques
Contrôle par une application Java de l'exécution de processus
Échange de messages entre producteur et consommateur via l'API Flow
Mise en œuvre du mot clé var dans une application
Exécution directe d'un fichier source
Évolutions dans la syntaxe
- Pattern matching avec instanceof
- Nouvelle syntaxe pour le switch
- Les blocs de texte
- Les records
- Les classes et interfaces scellées
Autres nouveautés dans Java 17
- L’API Vector
- L’API Foreign Memory Access
- Nouvelle implémentation de ServerSocket
- Sérialisation avec @Serial
- Message lié au NullPointerException
- L’outil jpackage
Travaux pratiques
Mise en œuvre des blocs de texte
Remplacement de classes ordinaires par des records
Mise en œuvre de classes et interfaces sealed
Travaux pratiques
JVM
- Ramasse-miettes générationnel ZGC
Langage
- Le Pattern Matching pour switch
- Les Record Patterns
Librairies
- Les threads virtuels
- Les collections de type séquence
- L’API d’encapsulation des clés de cryptage
- Le Serveur web intégré
- Réflexion avec les Method Handles
Fonctionnalités en prévision (Preview features)
- Modèles de chaînes (String templates)
- Classes anonymes et méthodes d’instance main (unnamed classes and instance main methods)
- Patterns et variables anonymes (unnamed patterns and variables)
- Valeurs étendues (scoped values)
- Concurrence structurée (structured concurrency)
- API de gestion mémoire et de fonctions étrangères (Foreign function & memory API)
- API Vector (Vector API)
Travaux pratiques
Travaux pratiques
Programme mis à jour le 14/10/2025
Public concerné
Ce cours s'adresse aux développeurs et chefs de projets maîtrisant le langage Java.

Prérequis
Cette formation présente les nouveautés de Java 11 et Java 21 pour un profil maîtrisant déjà le langage Java. Pour suivre cette formation, il est donc indispensable de bien connaître la version Java 8.
J’évalue mes connaissances pour vérifier que je dispose des prérequis nécessaires pour profiter pleinement de cette formation en faisant le test de prérequis.
Faire le testFinancement
Cette formation peut être prise en charge par votre entreprise, seule ou avec l’appui de son opérateur de compétences. Nous fournissons le devis et les pièces attendues par l’OPCO.
Formations liées
- Actualisation de Java 18 à Java 21Réf. JN18211 jourIntermédiaireProchaine session : 14 oct.950 €
- Architecture Event Driven avec Spring Cloud StreamRéf. SCKA2 joursIntermédiaireProchaine session : 21 déc.1 590 €
- Architecture Microservices avec Spring CloudRéf. SFSC3 joursIntermédiaireProchaine session : 2 nov.2 090 €
- Architecture Microservices avec Spring Cloud et Spring Cloud KubernetesRéf. SSBC5 joursIntermédiaireProchaine session : 2 nov.3 050 €