Jour 1
Introduction
Quelques rappels Java 7 et 8
Java IO - Sérialisation et performance réseau
- Flux d'objets et mécanisme de sérialisation
- Personnalisation du format sérialisé
- Optimisation des performances
- Compatibilité et évolutivité des flux binaires
Java NIO
- Buffers, Channels et Selectors
- Accès direct au système de fichiers
- Multiplexage de sockets et traitements non-bloquants
- Encodage des flux de caractères
La mémoire en Java
- Structure de la mémoire, espaces générationnels
- Mesure de l'activité du GC, impact sur les performances
- Problèmes fréquents
- Optimisation de la JVM
- Finalizers et références
- Pools d'objets
Jour 2
L'API Réflexion
- Chargement et manipulation dynamique des objets
- Cas particuliers : tableaux et types paramétrés
Structures de données
- Notion de complexité spatiale et temporelle
- Performance des algorithmes de parcours et tri
- Algorithme de hachage
- Etude et comparaison des structures de données usuelles
Gestion des exceptions
- Hiérarchie et signification des types exceptions
- Analyse et manipulation des Stacktraces
- Assertions et qualité logicielle
- Pièges et bonnes pratiques
- Considérations de performances
Gestion des Dates et des TimeZones
- Temps machine, temps humain
- Dates, calendriers et timezones en Java
- Bonnes pratiques
Logging
- Enjeux et bonnes pratiques
- Log4J en action
- Impact sur les performances