Formations Accélérées : Perfectionnement JAVA
Objectifs :
- Maîtriser les concepts les plus avancés afin de tirer profit de toute la puissance du langage Java ;
- Optimiser ses développements en java et développer des applications n-tiers ;
- Étudier les modèles de conception que l'on retrouve habituellement dans les applications Java.
Durée
- 30 Heures
Pré-requis
- Connaissance du langage Java et de la programmation objet.
Contenu du Programme
Quelques aspects avancés du langage :
- Les inner classes, Les classes anonymes ;
- La redéfinition covariante des méthodes ;
- Les nouvelles boucles for ;
- Les import static, Les varargs ;
- L'auto-boxing, auto-unboxing ;
- Les types énumérés : Utilisation et définition ;
- Les types génériques : L'utilisation et la définition de types génériques simples ;
- La généricité et la relation de sous-typage ;
- Le mécanisme d'effacement et ses conséquences ;
- les types génériques à l'exécution, les types génériques et l'instanciation ;
- les types génériques et les tableaux ;
- Les méthodes génériques : L'utilisation simultanée des types génériques et non génériques ;
- Les annotations : Objectifs et principes ;
- Les annotations prédéfinies (@override, @deprecated, @suppress§Warnings) ;
- La définition de nouvelles annotations : Les méta-annotations (@Retention, @Target,@Documented, @Inherited) ;
- L'utilisation réflexive des annotations à l'exécution.
La programmation concurrente :
- La programmation concurrente : l'interblocage ;
- Définitions relatives à la programmation concurrente : les threads, La création/destruction des threads, Ordonnancement des threads ;
- La synchronisation des threads, Le verrouillage des méthodes et des instructions (synchronized), Les moniteurs ;
- Principes méthodologiques pour la conception d'applications multithreadées ;
- Les problèmes posés par la programmation multithread, le problème de l'interblocage, (caractérisation, évitement, prévention, détection), le problème de la famine ;
- La librairie concurrente de JDK1.5., Les nouvelles collections, Les nouveaux outils de synchronisation, les verrous partagés/exclusifs, les sémaphores, les barrières cycliques.
La programmation des communications distantes :
- Le langage propose de nombreuses librairies de communication, on présente les plus utilisées et les plus représentatives en insistant sur leurs particularités et leurs domaines d'application.
La communication par socket :
- Rappels sur les principaux concepts réseaux ;
- La programmation en mode non connecté (par datagram), le modèle peer to peer ;
- La communication en mode connecté (par stream) ;
- Le modèle client/serveur, Serveur séquentiel vs serveur concurrent, utilisation de la sérialisation ;
- La librairie nio, Les buffers, Channels, Les sélecteurs et leur utilisation.
La communication par invocation de méthode distante : RMI :
- Les principes généraux ;
- Les classes de base ;
- Le service de nommage ;
- Le processus de développement du client et du serveur ;
- Les contraintes de sécurité et de chargement de classes.