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

  • 40 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.