| Java avancé |
| Appronfondir ses connaissances en Java |
Référence : JAVA-AV-04
Durée : 4 jour(s) |
|
Objectifs
- Pousser plus avant la maîtrise du langage Java
- Comprendre et maîtriser les architectures des applications concurrentes
- Maîtriser les API de communication entre applications Java
|
Contenu
Types paramétrés (« Generics »)
- Présentation et avantages
- Notion d'effacement de type
- Types bornés et indéfinis
- Comprendre les API et collections paramétrées
- Développer des classes et méthodes paramétrées
- Limitations
Références
- Comprendre le Garbage Collector
- Référencement des objets et consommation mémoire
- Hard, Soft, Weak et Phantom References
- En pratique : WeakHashMap
Réflexion
- Analyser une classe
- Accéder aux champs et méthodes
- Créer une nouvelle instance
- Cas particuliers : génériques, tableaux et enums
- Proxies dynamiques
Classloaders
- Définition et hiérarchie des classloaders
- Quand une classe est-elle chargée ?
- Fonctionnement interne : findclass(), defineClass() et loadClasss()
- Implémenter un classloader personnalisé
Maîtriser les Threads
- Notion de Thread et cycle de vie
- Lancer un thread : Thread et Runnable
- Arrêter proprement un thread
- Interruption prématurée du traitement
- Threads démons, priorité, groupes de threads
- Variables Threadlocal
Thread Safety
- Notion de classe « thread-safe », immutabilité
- Synchronisation, volatilité et visibilité mémoire
- Variables atomiques et collections synchronisées
Architectures concurrentes
- Synchronisation des threads avec wait, notify et join
- Le framework Executor
- Queues, Latches, Barrières et Sémaphores
- Design patterns concurrents
Sérialisation
- Rappels sur la sérialisation
- SerialVersionUID et compatibilité binaire
- Serializable et Externalizable
- Sérialisation et désérialisation personnalisées
NIO
- Comparaison avec java.io
- Comprendre les Buffers
- Manipuler des données volumineuses avec le mapping en mémoire
- Opérations asynchrones avec les Channels et les Selectors
RMI
- Architecture générale
- Définir une interface de service
- Développer un service
- Le registre RMI
|
| * Le déjeuner est compris dans le tarif. |
| ** Les livres sont offerts uniquement pour les formations inter-entreprise. Zenika se réserve le droit de changer le livre proposé à tout moment. |
|
| Auteur du cours |
| |
|
Olivier Croisier est expert Java / Spring / Terracotta / Web. Il est certifié Java 5.0 avec 100%, certifié Spring 2.5 avec 86% et est formateur certifié Terracotta. Il est l'auteur du blog The Coder's Breakfast. De plus Olivier a publié plus de 200 articles sur différents blogs techniques et dans la presse spécialisée. |
|
|
|