Votre partenaire formation

Java – programmation avancée

Réf: JAP

Durée: 5 jours

Objectifs de la formation

Ce cours a un double objectif. D »une part, approfondir certains aspects avancés du langage (les types génériques, les annotations, la programmation réflexive, le chargement des classes). D »autre part, présenter un panorama synthétique des principales librairies concernant les thèmes suivants : la gestion des threads, les communications via le réseau, l »administration et la supervision des applications. Ce cours insiste par ailleurs sur les techniques architecturales associées à leur bonne utilisation.
– Contenu de cette formation Java:
-Quelques aspects avancés du langage
-La programmation concurrente
-La programmation des communications distantes
-L »administration et la supervision
-La sécurité et le chargement de classes
-Développeur Java
-Développeur Java applications distribuées
-Consultant Java/JEE

 

Programme de Formation

 

Quelques aspects avancés du langage

-Les inner classes.

-Les classes anonymes.

-La redéfinition covariante des méthodes (jdk1.5).

-Les nouvelles boucles for (jdk1.5).

-Les import static (jdk1.5).

-Les varargs (jdk1.5).

-L »auto-boxing, auto-unboxing (jdk1.5).

-Les types énumérés (jdk1.5). Utilisation et définition

-Les types génériques (jdk1.5). L »utilisation et la définition de types génériques simples. La généricité et la relation de sous-typage : le type ? 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 (jdk1.5). 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.

Travaux pratiques 
Utilisation des types génériques et des annotations.

La programmation concurrente

-La programmation concurrente est un aspect important du langage : elle offre une solution élégante et efficace à de nombreux problèmes. Cette forme de programmation comporte cependant des pièges. On étudie le plus courant d »entre eux : 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…

Travaux pratiques
Construction d »une application concurrente avec synchronisation et résolution d »interblocage.

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 »applications

 La communication par socket

-Rappels sur les principaux concepts réseaux

-La programmation en mode non connecté (par datagram). Le modèle peer to pee

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

 La communication par messages : JMS

-Les principes généraux de la communication par messages.

-Les concepts de JMS, les interfaces et les classes correspondantes.

-Les différentes formes de messages.

-La communication en mode point à point.

-La communication en mode publish/subscribe.

Travaux pratiques 
Programmation de l »étude de cas en mode client-serveur (séquentiel et concurrent). Programmation de l »étude de cas à l »aide de RMI. Programmation de l »étude de cas à l »aide de JMS.

L »administration et la supervision

-L »administration et la supervision des applications prennent une importance de plus en plus grande. JMX est le standard qui semble s »imposer aujourd »hui dans le monde Java, en particulier grâce à son modèle simple mais puissant mais aussi grâce à sa nature peu intrusive.

Présentation de JMX (Java Management Extension)

-La distinction entre l »application à administrer et l »application d »administration.

-Les concepts de JMX : MBean, MBeanServer, Agent, Connector

-Les API JMX.

-La mise en œuvre des différentes catégories de Mbeans (standard, dynamiques, model).

-L »utilisation des adaptateurs et des connecteurs.

-Les consoles d »administration.

La programmation réflexive

Travaux pratiques 
Mise en place d »une couche d »administration-supervision pour l »étude de cas.

La sécurité et le chargement de classes

-Les aspects avancés et moins connus de la JVM.

-Les mécanismes liés à la JVM pour assurer la sécurité. Le modèle de sécurité de Jdk1.2 : les permissions, les politiques, les domaines de sécurité. Le gestionnaire de sécurité et le contrôleur d »accès.

-Les mécanismes de chargement de classes.

-Le développement de chargeurs de classes spécifiques.

 

 

Profil Stagiaires & Pré-requis

Développeurs, ingénieurs, chefs de projets proches du développement.

Bonnes connaissances du langage Java. Expérience requise en programmation Java

 

Prix : 2380  € HT

Paris, Lyon, Aix, Nantes, Rennes, Toulouse, Bordeaux, Bruxelles, Strasbourg, Lille, Genève, Sophia Antipolis, Luxembourg

 

Dates de Formation
Nous consulter