Java
L'essentiel Java SE/EE
Programmation avancée Java SE
Avis d'expert
Cette formation vous permettra d’appréhender les aspects avancés du langage Java comme le fonctionnement des threads, du classloader, de l’introspection ou la supervision d’application. Ces trois jours sont agrémentés de nombreux travaux pratiques et vous bénéficierez des retours d’expérience nécessaires à la bonne compréhension des subtilités du langage.
Objectifs pédagogiques
- Maîtriser les fonctionnalités avancées du langage Java (threads, introspection…)
- Connaître le fonctionnement de la JVM et du classloader
- Exploiter les possibilités méconnues des JDK 5 et 6
Public
Cette formation est destinée aux développeurs et aux architectes qui souhaitent développer leur connaissance de Java et qui ont besoin d’une expertise forte de la technologie.
Pré-requis
Le public visé doit posséder une expérience significative dans le développement d’applications Java ou avoir suivi la formation « Les bases de la programmation objet en Java » (JSE01).
Méthode pédagogique
Formation rythmée par des apports théoriques et des ateliers de mise en pratique.
Programme pédagogique détaillé par journée
Jour 1
Jour 2
Jour 3
L’API Java NIO
Rappels de l’API Java IO.
Présentation des spécificités de Java NIO.
Atelier « Exploiter les possibilités de Java NIO »
Mise en œuvre d’un exemple pour démontrer les apports de l’API NIO.
La sérialisation
Définition de la sérialisation.
Présentation des différentes classes et interfaces.
RMI
Présentation de la problématique des applications distribuées.
Présentation de RMI.
Contraintes de sécurités et chargement des classes.
Une autre réponse aux applications réparties : les Web services.
Atelier « Mise en œuvre de la sérialisation et de RMI »
Mise en œuvre de RMI sur un cas pratique.
XML
Présentation des différents types de parsers : SAX et DOM.
Présentation de l’API JAXP.
Le mapping objet / XML : présentation de JAXB.
Atelier « Mise en œuvre d’un mapping objet / XML simple avec JAXB »
Création d’un mapping objet / XML avec JAXB.
Les threads
Fonctionnement des threads, cycle de vie.
Les méthodes wait(), notify(), notifyAll(), join().
L'interblocage et autres problèmes classiquement rencontrés.
Utiliser une variable ThreadLocal.
Les queues, sémaphores, loquets et barrières.
Les verrous.
Les exécuteurs de tâches.
Atelier « Utilisation des queues, sémaphores, loquets et barrières »
Mise en œuvre d'un exemple pratique d'utilisation des queues, des sémaphores, des loquets et des barrières.
Fonctionnement de la JVM et optimisation des performances
Présentation du fonctionnement de la JVM.
Le garbage collector et la mémoire.
Le classloader.
Détecter et résoudre les problèmes de performances.
La programmation dynamique
Présentation et mise en œuvre de la réflexion, de l'introspection, des proxys dynamiques...
Appel de code natif
Mise en œuvre à l'aide de JNI (Java Native Interface).
Mise en œuvre à l'aide de JNA (Java Native Access).
Atelier « Programmation dynamique » et « Appel de code natif »
Mise en œuvre de la programmation dynamique sur un cas pratique.
Mise en œuvre d'un exemple appelant du code natif en utilisant JNI puis JNA.
Exploiter les possibilités des JDK 5 et 6
Rappel des apports des versions 5 et 6 (autoboxing, types énumérés...).
Les annotations et leur utilisation.
Les subtilités des Generics.
Le scripting en Java avec la JSR-223.
Les nouveautés de JDBC-4.
Atelier « Mise en œuvre des fonctionnalités des JDK 5 et 6 »
Développement d'annotations.
Mise en œuvre d'un exemple de scripting.
Mise en œuvre des nouveautés de JDBC-4.
Management et supervision avec JMX et JVMTI
Présentation de JMX et des MBeans.
Superviser son application via JVMTI.
Atelier « Création d'un MBean et supervision d'application »
Développement d'un MBean.
Supervision d'une application avec JConsole et VisualVM.
Déploiement d'application Java
Présentation de Java Web Start.
Présentation du plugin d'applet et sa nouvelle version le plugin2.
Atelier « Déploiement d'application »
Déploiement d'une application avec Java Web Start.
Déploiement d'une application avec le plugin2 d'applet (drag-anddrop d'applet).











3 jours - 21 heures



