Consult our trainings :
Java expert, les avancées du langage (de Java 5 à Java 11) Training
- Program
- Participants / Prerequisite
- Intra/Tailored
Le langage Java et son environnement, apparus il y a vingt ans, se sont enrichis et ont évolué depuis leurs premières versions. Certaines évolutions sont, malgré une apparente simplicité, difficiles à maîtriser. Ce cours présente en détail les évolutions concernant le langage, la JVM et des librairies importantes.
Objectifs pédagogiques
- Maîtriser les nouveautés syntaxiques et sémantiques du langage introduites de Java 5 à Java 11
- Appréhender l’évolution de la JVM
- Appréhender l’évolution de packages importants
Les extensions concernant la lisibilité, concision du langage
- Quelques extensions syntaxiques du langage (Java 5, 7, 9).
- Méthodes par défaut (Java 8).
- Méthodes static en interface (Java 8).
- La représentation des constantes numériques (Java 7, 8).
Travaux pratiques
Manipulation d'extension et de constantes numériques.
Les extensions concernant le typage du langage
- L’autoboxing/unboxing (Java 5).
- Les generics (Java 5, 7).
- Les types énumérés (Java 5).
- L’inférence de type.
Travaux pratiques
Manipulation et utilisation des types génériques et des différents autres types.
Les extensions concernant la métaprogrammation
- Les méta-annotations (Java 5, 8).
- Les annotations (Java 5, 8).
Travaux pratiques
Manipulation et utilisation des annotations.
L’introduction de la programmation fonctionnelle
- Les librairies d’interfaces fonctionnelles prédéfinies (Java 8).
- Les lambda expressions (Java 8).
- Les streams Java 8 (Java 8).
- Les interfaces fonctionnelles (Java 8).
L’introduction de la modularité
- La création de modules à la place des jars : principe général, avantage.
- Les modules (Java 9, 11).
- L’accessibilité vs. la lisibilité.
- L’évolution du chargement des classes (Java 5, 9).
Les extensions du modèle de threads
- L’introduction des Callable<T>, Future<T> et des ExecutorService (Java 5, 8).
- Le modèle fork/join (Java 7, 8).
- Les nouvelles classes de synchronisation (Java 5, 7, 8).
Travaux pratiques
Utilisation de threads.
L’évolution de la JVM
- La compilation.
- Le Garbage Collector.
- Le chargement des classes.
- L'amélioration de la gestion des chaînes dans la JVM (Java 9).
La gestion du temps et des dates (Java 8)
- La gestion du temps machine.
- La gestion du temps humain.
- Intervalles de temps : Period et les intervalles de dates, Duration et les intervalles de temps machine (en seconde).
- Une date en fonction d'éléments relatifs : TemporalAdjusters.
- Les différences de temps avec des fuseaux horaires.
Travaux pratiques
Utilisation des instructions gérant le temps.









