Subtilité du langage
- Etude approfondie de tous les mots clés (final, static, throw, throws, volatile, native...).
- Les niveaux de visibilité.
- Les initializers.
- Les classloader.
Travaux pratiques
Test du meilleur usage des mots clés, des niveaux de visibilité...
Interfaces et génériques
- Interfaces.
- Generics (y compris leur traitement par le compilateur).
- Classe anonymes.
- Inner class.
Travaux pratiques
Utilisation d'interfaces et de generics.
Gestion de la mémoire
- Compréhension du garbage collector.
- Détection et résolution d'une fuite mémoire.
Travaux pratiques
Analyse mémoire, résolution de problème de fuite.
La classe Object et quelques interfaces de base
- Etudes des méthodes de la classe Object (getClass, hashCode, equals, toString, wait, notify...).
- Etudes des principales interfaces proposées par le framework (Comparable, Serializable...).
Travaux pratiques
Manipulation des méthodes de la classe dans des classes dérivées. Manipulation d'interfaces.
Les collections
- L'interface Collection et les principales implémentations (List, Set, Queue, Deque, Stack).
- De la bonne utilisation au bon moment du bon type de collection.
- L'interface Map et les différentes implémentations.
Travaux pratiques
Utilisation de collections, test et choix des bons objets.
Bonnes pratiques de conception d'une application
- Découpage en couche.
- Présentation des enjeux d'un développement d'entreprise.
- Introduction à l'écosystème java (JEE, Spring, Hibernate, Struts...).
Travaux pratiques
Réflexion sur la conception en couche. Démonstration de l'utilisation de Frameworks.