Nos domaines de formation :

Formation Java, programmation avancée

4,4 / 5
Stage pratique
Durée : 5 jours
Réf : JAP
Prix  2018 : 2660 € H.T.
Pauses et déjeuners offerts
  • Programme
  • Cycles certifiants
  • Participants / Prérequis
  • Intra / sur-mesure
  • avis vérifiés
Programme

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.

Objectifs pédagogiques

  • Maîtriser les aspects avancés du langage Java
  • Mettre en œuvre la programmation concurrente à base de threads
  • Mettre en œuvre différentes techniques de communication (Socket, RMI, JMS)
  • Comprendre le modèle de sécurité et le chargement des classes Java
  • Administrer une application Java via JMX, surveiller la JVM
  • Mettre en œuvre la programmation réflexive

Travaux pratiques

Ce cours illustre les principes exposés par la construction progressive d'une application en Java.
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).
  • L'auto-boxing, auto-unboxing (jdk1.5). Les varargs (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.
  • 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 et jdk1.6). Principes. Les annotations prédéfinies (@override, @deprecated, @generated...).
  • La définition de nouvelles annotations.
  • Les méta-annotations (@Retention, @Target, @Documented, @Inherited). L'utilisation réflexive des annotations..
  • Support du wildcard dans le classpath (jdk1.6).
  • Nouveautés sur les collections (jdk1.5 et jdk1.6) : les Queues, les ConcurrentMap...

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

La programmation concurrente

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

Travaux pratiques
Programmation de l'étude de cas en mode client-serveur (séquentiel et concurrent).

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.

Travaux pratiques
Programmation de l'étude de cas à l'aide de RMI.

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 à l'aide de JMS.

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.

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.

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

La programmation réflexive

  • Objectifs et principes.
  • Le chargement de classes. L'objet Class.
  • Découverte dynamique des informations (propriétés et méthodes) relatives à une classe ou à un objet.
  • Instanciation dynamique.
  • Invoquer une méthode.
  • La réflexivité des annotations en Java 5.
Cycles certifiants
Participants / Prérequis

» Participants

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

» Prérequis

Bonnes connaissances du langage Java. Expérience requise en programmation Java.
Intra / sur-mesure
Programme standard     Programme sur-mesure
Oui / Non

Vos coordonnées

Avis vérifiés
picto avis vérifiés
Henry W. 18/06/2018
5 / 5
Le formateur maitrise parfaitement le sujet. J'apprécie son patience pour s'adapter au niveau de chaque stagiaire. De plus, il a adapté son cours pour donner plus de temps pour traiter les sujets qui interessent plus les participants. Merci.

Amélie M. 18/06/2018
5 / 5
Bon équilibre entre la théorie et la pratique sur l'ensemble du stage.

Julien G. 18/06/2018
5 / 5
Je suis plutôt satisfait du contenu de la formation. Le formateur était très bien, pédagogue et compétent.

Jean B. 09/04/2018
5 / 5
Suffisamment de temps laissé pour les TP permettant de bien comprendre les concepts à son rythme. Très appréciable :-)

Loic M. 09/04/2018
5 / 5
Excellente formation

Pascal C. 26/02/2018
5 / 5
Le contenu est très satisfaisant. Le formateur était très compétent et intéressant.

Manon B. 26/02/2018
5 / 5
formateur très pédagogue

Hary R. 18/12/2017
4 / 5
Formation très riche, très intéressante, le rythme était très soutenu

Bruno M. 18/12/2017
4 / 5
Aurait aimer avoir la correction de l'ensemble des exercices fournis.

Guillaume L. 18/12/2017
4 / 5
bonnes connaissances et possibilité de récupérer le contenu en cas de problème (pratique)

Morad A. 18/12/2017
4 / 5
Très correct. Approfondir la première partie sur java 8 aurait été super

Helder M. 16/10/2017
4 / 5
Le support de cours n'est pas remis au gout du jour. Il présente des fonctionnalités de JAVA5 comme étant nouvelles (datant de 2004) alors que des fonctionnalités de JAVA 7 ou 8 ou 9 (par ex Lambda expressions de JAVA8) ne sont pas présentées. La formation est intitulée "Java *avancée*" mais présente des concepts simples de JAVA (par exemple les collections, les annotations, ...), ce qui laisse peu de temps pour étudier les concepts vraiment avancés de JAVA.

Salim M. 16/10/2017
4 / 5
Le professeur (MR DELEAGE) maitrise parfaitement le sujet. Excellent pédagogue. Sur le cours, j'aurais voulu avoir plus de Design Patterns. dommage que nous n'avons pas fait beaucoup.

Fabienne B. 16/10/2017
4 / 5
Formateur très pédagogue.

Nicolas D. 16/10/2017
4 / 5
Les exercices sont progressifs et adaptés au contenu.

Laurent O. 16/10/2017
5 / 5
Complément indispensable pour aller plus loin en Java

Yangtao L. 16/10/2017
5 / 5
Le contenu est très complet. Il est adapté aux niveaux différents dès qu'on a une base en Java.

SANTOS F. 16/10/2017
5 / 5
Manque des précisions sur Java 8

Valérie D. 21/08/2017
5 / 5
Mes remarques ont été prises en compte par l'évaluateur, très appréciable
Avis client 4,4 / 5

Les avis client sont issus des feuilles d’évaluation de fin de formation. La note est calculée à partir de l’ensemble des avis datant de moins de 12 mois.

Dates de sessions

Pour vous inscrire, cliquez sur la session qui vous intéresse.
[+]
AIX
[+]
BORDEAUX
[+]
GRENOBLE
[+]
LILLE
[+]
LYON
[+]
MONTPELLIER
[+]
NANTES
[+]
PARIS
[+]
RENNES
[+]
SOPHIA-ANTIPOLIS
[+]
STRASBOURG
[+]
TOULOUSE

Horaires

Les cours ont lieu de 9h à 12h30 et de 14h à 17h30.
Les participants sont accueillis à partir de 8h45.
Pour les stages pratiques de 4 ou 5 jours, les sessions se terminent à 15h30 le dernier jour.