Java 21 : développer des applications modernes et performantes
De Java 8 aux Virtual Threads : maîtriser 15 ans d'évolution du langage
Formation créée le 22/04/2026.Version du programme : 1
Type de formation
PrésentielDurée de formation
35 heures (5 jours)
Cette formation est gratuite.
S'inscrire
Cette formation est gratuite.
S'inscrire
Cette formation est gratuite.
S'inscrire
Java 21 : développer des applications modernes et performantes
De Java 8 aux Virtual Threads : maîtriser 15 ans d'évolution du langage
Cette formation vise à approfondir les connaissances des participants sur Java 21, en mettant l'accent sur les nouvelles fonctionnalités, les améliorations de performance et les meilleures pratiques de développement. Les participants acquerront les compétences nécessaires pour développer des applications Java modernes et efficaces.
Objectifs de la formation
- Comprendre les nouvelles fonctionnalités et les améliorations de Java 21 (avec une rétrospective depuis Java 7)
- Maîtriser la programmation concurrente avancée et la manipulation de données réactives
- Savoir déployer, gérer et optimiser des applications Java 21 pour des performances optimales
Profil des bénéficiaires
Pour qui
- Développeurs Java expérimentés
Prérequis
- Solide expérience en programmation Java
- Connaissance de base des concepts de programmation concurrente
Contenu de la formation
Rappel Java (7h)
- Rappel des bases : syntaxe, classes, objets, interfaces
- APIs standards de Java (Collections, I/O, NIO, etc.)
- Introduction aux lambdas et à la programmation fonctionnelle (Java 8)
- Travaux pratiques : Exercices de base et utilisation des lambdas
- Manipulation des streams avec l'API Stream
- Gestion des exceptions, Optionals et bonnes pratiques
- Travaux pratiques : Utilisation des Streams pour la manipulation de données
Nouveautés de Java 8 à Java 12 (3h30)
- Introduction aux nouveautés : lambda expressions, Streams API, interfaces par défaut (Java 8)
- Modularité avec Project Jigsaw (Java 9)
- Utilisation de var pour l'inférence de type local (Java 10)
- Introduction aux Switch expressions (Java 12)
- Travaux pratiques : Intégration de ces nouveautés dans des exemples concrets
Nouveautés de Java 13 à Java 21 (3h30)
- Introduction aux Text blocks (Java 13)
- Utilisation des Records (Java 16) et Pattern Matching for instanceof (Java 16)
- Conception de classes scellées (Java 17)
- Pattern Matching for switch stabilisé (Java 21)
- Record Patterns (Java 21) : déconstruction des records
- Sequenced Collections (Java 21) : SequencedCollection, SequencedSet, SequencedMap
- Travaux pratiques : Utilisation conjointe des records, record patterns et pattern matching switch dans un cas métier
Programmation Java avancée (7h)
- Généricité avancée et manipulation des collections
- Utilisation avancée des classes immuables et des records
- Lambda expressions avancées et parallélisme dans les flux
- Travaux pratiques : Implémentation des fonctionnalités avancées dans un projet modulaire
- Conception avec les classes scellées (sealed classes)
- Utilisation avancée des Streams API pour le traitement parallèle
- Modélisation métier "data-oriented" avec sealed classes, records et pattern matching (approche Java 21)
- Travaux pratiques : Création d'une architecture modulaire avec classes scellées, records et record patterns
Programmation concurrente et réactive (7h)
- Introduction à la programmation concurrente avec CompletableFuture (Java 9+)
- Gestion des tâches asynchrones et parallélisation
- Virtual Threads (Java 21) : modèle platform threads vs virtual threads, API Thread.ofVirtual() et Executors.newVirtualThreadPerTaskExecutor()
- Virtual Threads : cas d'usage (serveurs I/O-bound, requêtes bloquantes massivement parallèles), pièges (synchronized et pinning, ThreadLocal)
- Structured Concurrency (Java 21, preview) : StructuredTaskScope, gestion d'erreurs et d'annulation structurée
- Travaux pratiques : Développement d'une application avec CompletableFuture, puis transformation vers Virtual Threads et comparaison de comportement
- Introduction aux flux réactifs (java.util.concurrent.Flow) et positionnement face aux Virtual Threads
- Debugging et optimisation des applications concurrentes
- Travaux pratiques : Illustration de Structured Concurrency sur un cas asynchrone
Projet final (7h)
- Conception du projet : architecture modulaire
- Intégration des nouveautés Java 21 dans le projet (records, pattern matching switch, record patterns, sealed classes)
- Travaux pratiques : Développement de la première partie de l'application complète (modules, gestion des données)
- Intégration des Virtual Threads dans le projet
- Gestion de la performance et des threads
- Introduction au profiling avec Java Flight Recorder (JFR) et JDK Mission Control (JMC)
- Generational ZGC (Java 21) : évolution du garbage collector bas-latence
- Travaux pratiques : Finalisation du projet complet avec tests, débogage et optimisations via JFR
Équipe pédagogique
Professionnel expert technique et pédagogique
Suivi de l'exécution et évaluation des résultats
- Feuilles de présence
- Questions orales ou écrites (QCM)
- Mises en situation
- Formulaires d'évaluation de la formation
- Certificat de réalisation de l'action de formation
Ressources techniques et pédagogiques
- Espace numérique de travail
- Documents supports de formation projetés
- Exposés théoriques
- Etude de cas concrets
- Quiz en salle
- Mise à disposition en ligne de documents supports à la suite de la formation
- Travaux pratiques (Minimum 60 % du temps de formation)