| Java avancé |
| Appronfondir ses connaissances en Java |
Référence : JAVA-AV-04
Durée : 4 jour(s) |
|
|
| Lieu |
Date de début |
Prix (HT) |
Formateur |
Réserver |
| Paris |
04 octobre 2010 |
1990 €
|
|
|
| Paris |
02 novembre 2010 |
1990 €
|
|
|
|
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
|
| Répartition : 50% Théorie, 50% Pratique |
| Public : Architecte, Développeur, Chef de projet, |
| Pré-requis : Connaissance de Java, |
Programme
Contrôler la qualité du code avec les Assertions
- Présentation et cas d'utilisation
- Syntaxe des assertions
- Activer sélectivement les assertions à la compilation, au runtime
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é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
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
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é
SPI et découverte dynamique de services
- Notions de SPI et de Service
- Découverte dynamique
- Use-case : système de plugins
|
| * Les livres sont offerts uniquement pour les formations inter-entreprise. Zenika se réserve le droit de changer le livre proposé à tout moment. |
|
| Offert en inter-entreprise |
| >>Le petit déjeuner (croissants, jus d'orange, café) |
| >>Le déjeuner |
| >>Une qualification téléphonique si nécessaire avec l'un de nos consultants |
>>Le livre Java Puzzlers *
|

|
|
|
|