Java - Nouveautés des versions 8 à 17
Qualiopi
Objectifs pédagogiques
A l'issue de cette formation, vous serez capable de :
- Exploiter les principaux apports des versions de la Java Development Kit (JDK) 8 à 16
- Exploiter des lambda expressions en passant par les streams et l'API DateTime
- Gérer des modules en passant par les étapes d'une migration réussie
- Reconnaître les améliorations apportées au langage au fil des versions
- Utiliser les bases du langage Java avec une meilleure productivité.
Programme de la formation
Jour 1
Rappels des apports en programmation concurrente (JDK 7 et plus)
- Le package java.util.concurrent
- Les facilités apportées pour le multi-threading et la programmation parallèle
- Le Fork and Join
Exemple de travaux pratiques (à titre indicatif)
- Mise en oeuvre d'un programme utilisant le pattern Fork and Join
Les lambda en Java (JDK 8 et plus)
- S'approcher de lambda sans Java 8
- Les lambda expressions
- Les interfaces fonctionnelles
- Liste des interfaces fonctionnelles
- Paramètres d'une lambda expression
- Cas d'utilisation des lambda expressions
- Les références de méthode dans les lambda expressions
Exemples de travaux pratiques (à titre indicatif)
- Création d'un nouveau projet
- Utilisation des interfaces fonctionnelles fournies et créées
- Utilisation des lambda expressions sous différentes formes
- Simplification de la programmation avec les lambda
Les streams (JDK 8 et plus)
- Présentation générale des streams
- Créer des streams
- Opérations intermédiaires sur les streams
- Opérations terminales
Exemples de travaux pratiques (à titre indicatif)
- Création d'un nouveau projet
- Application de la gestion des streams à des flux de données fournis
- Opérations de création, intermédiaires et finales
L'API DateTime (JDK 8 et plus)
- Classes importantes de DateTime
- Utilisation de DateTime
Exemple de travaux pratiques (à titre indicatif)
- Exploitation de l'API DateTime
Jour 2
Le système de modules (JDK 9 et plus)
- Architecture et modularité dans le JDK 9
- La déclaration des modules
- Requires
- Exports
- Uses
- Provides
- With
- Opens
- Les mots réservés
- Exemples des classes d'applications modularisées
- Le fichier module-info.java
- Le graphe de dépendances
- Lancer une application à partir des modules
- Le packaging des modules et les JAR
- Exporter un package pour l'utiliser ailleurs
- Encapsulation forte et accessibilité
Exemples de travaux pratiques (à titre indicatif)
- Création d'une application utilisant les modules
- Migration d'une application non modulaire vers le système de module
- Compatibilité du système modulaire avec l'existant
JShell (JDK 9 et plus)
- Introduction à JShell
- Exécuter et tester du code à la volée
Exemple de travaux pratiques (à titre indicatif)
- Utilisation de l'outil JShell
L'API Optional (JDK 9 et plus)
- Les méthodes
- or()
- ifPresent()
- ifPresentOrElse()
- stream()
Exemple de travaux pratiques (à titre indicatif)
- Exploitation de l'API Optional afin de gérer les références nulles
L'API Process (JDK 9 et plus)
- Gestion des process lancés
- L'interface ProcessHandle
Exemple de travaux pratiques (à titre indicatif)
- Création d'un outil d'administration des process lancés
Jour 3
Autres apports de la JDK 9
- Améliorations des streams Java 8
- L'API HTTP 2
- Nouvelles collections
- Les Reactive Streams, les streams asynchrones
- Méthodes privées d'interface
- L'API CompletableFuture
Exemple de travaux pratiques (à titre indicatif)
- Utilisation des Reactive Streams
Apports de la JDK 10
- Inférence de type de variables locales
- Améliorations dans les API existantes
Apports de la JDK 11
- Inférences de type pour les lambda expressions
- Simplification des "run" de programmes
- Améliorations dans les classes String, StringBuilder et StringBuffer
- Améliorations des Predicate Java 8
- Classes imbriquées et visibilité des attributs
- Suppression des modules JEE, JavaJX et CORBA
Exemple de travaux pratiques (à titre indicatif)
- Test des fonctionnalités apportées par la JDK 11
Apports de la JDK 12 et 13
- Le switch comme instruction
- Les blocs de texte
- Le mot-clé "yield"
- Les outils apportés par la JDK 12
Exemple de travaux pratiques (à titre indicatif)
- Test des fonctionnalités apportées par les JDK 12 et 13
Apports de la JDK 14
- Changements dans les switch
- Clarifications du NullPointerException
- Le Live Monitoring
- Changements dans le "instanceof"
- Nouveaux outils associés à la JDK 14
Apports de la JDK 15
- Les classes "Sealed"
- Fonctionnalités dépréciées
Apports de la JDK 16
- L'outil "jpackage"
Apports de la JDK 17
- Apports de la LTS 17
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation

Proposé par
M2I
"Un leadership dans le domaine de la formation"
À partir de
1830 €
Durée
21h en 3 jours
Localisation
Partout en France

Proposé par
M2I
À partir de
1830 €
