Fondamentaux du développement

Java avancé : concurrence, JVM, tests et performance

Maîtriser les aspects avancés de Java : concurrence moderne, mémoire de la JVM, flux, tests et optimisation.

Demander ce programme
Durée
28 h · 4 jours
Niveau
Confirmé
Format
Présentiel · Distanciel · Mixte
Effectif max.
12 participants

Présentation

Ce programme s’adresse aux développeurs Java qui veulent aller au-delà des bases : programmation concurrente moderne (exécuteurs, tâches asynchrones, threads virtuels), chargement des classes, mémoire et ramasse-miettes, apports récents du langage, flux, tests avec JUnit et démarche d’optimisation avec les outils de profilage. L’objectif est d’écrire des applications plus fiables et plus rapides.

À qui s’adresse ce programme

  • Développeurs Java confirmés
  • Architectes et leads techniques
  • Équipes de performance et d’exploitation

Prérequis

  • Pratique de Java (objet, collections, exceptions)

Objectifs pédagogiques

  • Écrire du code concurrent sûr
  • Utiliser Fork/Join, CompletableFuture et threads virtuels
  • Comprendre chargement des classes, bytecode et mémoire
  • Choisir et régler un ramasse-miettes
  • Exploiter les fonctionnalités récentes du langage
  • Tester avec JUnit 5 et le TDD
  • Profiler et optimiser

Programme détaillé

8 modules · 28 h · 4 jours

Jour 1
Programmation concurrente3,5 h🛠 1 atelier
30 % théorie · 70 % pratique
  • Threads et synchronisation
  • Interblocages et conditions de course
  • Exécuteurs, Callable et Future
  • Valeurs scopées
  • Bonnes pratiques de concurrence
🛠 Ateliers pratiques
Chasse aux problèmes de concurrence1,5 h

Diagnostiquer et corriger des erreurs de concurrence.

✅ Livrable : Un code corrigé et commenté
Concurrence avancée3,5 h
50 % théorie · 50 % pratique
  • Fork/Join et concurrence structurée
  • CompletableFuture
  • Verrous, sémaphores et barrières
  • Réflexion
  • Threads virtuels
Jour 2
La JVM sous le capot3,5 h
50 % théorie · 50 % pratique
  • Chargeurs de classes
  • Bytecode
  • Organisation de la mémoire
  • Ramasse-miettes modernes
  • Paramétrage de la JVM
Langage moderne3,5 h🛠 1 atelier
30 % théorie · 70 % pratique
  • Expressions switch
  • Filtrage par motif
  • Records
  • Classes scellées
  • Migration vers des versions récentes
🛠 Ateliers pratiques
Moderniser un code1,5 h

Remanier un code ancien avec les fonctionnalités récentes.

✅ Livrable : Un code modernisé
Jour 3
Outils du JDK et API récentes3,5 h
50 % théorie · 50 % pratique
  • JShell
  • ProcessHandle
  • Client HTTP
  • Modules
  • Outils en ligne de commande
Tests et TDD3,5 h🛠 1 atelier
30 % théorie · 70 % pratique
  • Démarche de développement piloté par les tests
  • JUnit 5 en profondeur
  • Doublures et mocks
  • Tests paramétrés
  • Couverture
🛠 Ateliers pratiques
Kata TDD2 h

Développer une fonctionnalité en TDD.

✅ Livrable : Une suite de tests
Jour 4
Lambdas, flux et modularité3,5 h
50 % théorie · 50 % pratique
  • Expressions lambda
  • Streams et flux parallèles
  • Collecteurs
  • Modules Java
  • Pièges de performance
Démarche d’optimisation3,5 h🛠 1 atelier
30 % théorie · 70 % pratique
  • Méthode : mesurer avant d’optimiser
  • Profilage avec JFR, VisualVM, MAT
  • Tests de charge
  • Fuites mémoire et réglage du ramasse-miettes
  • Plan d’amélioration
🛠 Ateliers pratiques
Optimiser une application2,5 h

Profiler une application et appliquer trois optimisations.

✅ Livrable : Un rapport chiffré

Outils et technologies

IntelliJ IDEAJUnitJavaMaven

Méthodes pédagogiques

  • Alternance d’exposés courts et de travaux pratiques
  • Démonstrations en direct par le formateur
  • Projet fil rouge construit au fil des modules
  • Corrections collectives et échanges sur les bonnes pratiques

Évaluation

  • Exercices pratiques corrigés à chaque module
  • Mini-projet réalisé en fin de formation
  • Quiz de validation des acquis

Matériel requis

  • Un ordinateur avec une connexion internet
  • JDK récent, IDE Java et outils de profilage

Ressources fournies

  • Support de cours et dépôt d’exercices corrigés

Débouchés

  • Une application plus rapide et plus stable
  • Une méthode d’optimisation outillée
  • Des tests automatisés fiables

Les cours vidéo associés

Mes cours en vidéo qui accompagnent ce programme : pour préparer la formation ou réviser ensuite. Accès gratuit avec un compte.