Formation Informatique | Formation Management
Informatique » Développement logiciel » Formation Java / JEE »

Java, programmation avancée


Formation Java

Stage pratique
Eligible au DIF

Réf : JAP

Prix 2012 : 2315 € H.T.
Durée :  5  jours
Ce cours fait partie du cycle
Développeur d'applications Java, 15 jours
Cliquer sur une session pour réserver:

Paris
1 oct. 12
Aix
25 juin 12
Lyon
25 juin 12
Nantes
18 juin 12
Rennes
18 juin 12
Sophia-antipolis
25 juin 12

Toutes les sessions  

Toulouse,Bordeaux
Bruxelles,Strasbourg
Lille,Geneve
Luxembourg
:
Nous contacter
Filières métiers:

Développeur Java
Développeurs d'applications distribuées Java

version pdf imprimer Faire suivre


Formation Java, programmation avancée : formation Java / JEE avec Orsys Passer le test


Les objectifs de cette formation Java


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.

Participants de cette formation Java

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

Pré-requis de cette formation Java

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

Travaux pratiques

Ce cours illustre les principes exposés par la construction progressive d'une application en Java.


Programme de cette formation Java

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

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.