fff

Combien de stagiaires suivront cette formation ?


Valider Annuler

Accueil    Formations    Informatique    Langages et développement    Développeur Java    Java - Programmation avancée

Partager cette formation Télécharger au format pdf Ajouter à mes favoris

Objectifs pédagogiques

  • Distinguer les aspects avancés du langage Java
  • Appliquer les principaux frameworks et librairies Java
  • Reconnaître le modèle de sécurité et le chargement des classes Java
  • Programmer en Java dans le contexte des bases de données relationnelles
  • Tester, debugger et optimiser vos applications
  • Identifier les nouveautés Java.

Modalités et moyens pédagogiques

Formation délivrée en présentiel ou distanciel* (e-learning, classe virtuelle, présentiel à distance).

Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).

Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :

  • Ordinateurs Mac ou PC (sauf pour les cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
  • Environnements de formation installés sur les postes de travail ou en ligne
  • Supports de cours et exercices

En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatique...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.

* nous consulter pour la faisabilité en distanciel

** ratio variable selon le cours suivi

Niveau requis

Avoir une connaissance pratique du langage Java ou avoir suivi le cours JAV-SE "Java - Les fondamentaux de la programmation".

Testez vos connaissances

Afin de vous orienter vers la formation la plus adaptée à votre niveau, passez votre test de connaissances pour évaluer vos compétences actuelles.

Temps estimé : 4 minutes.

Passer le test

Public concerné

Développeurs, architectes et chefs de projets techniques.

Programme

Jour 1 - Matin

Aspects avancés de Java

  • La programmation concurrente
  • Les concepts de la programmation multi-thread :
    • Le modèle d'activités de Java (Runnable et Thread)
  • La création / destruction des threads
  • Ordonnancement des threads
  • La synchronisation des threads
  • Le verrouillage des méthodes et des instructions (synchronized)
  • Les moniteurs
  • Quelques problèmes du multi-thread
    • L'interblocage (caractérisation, évitement, prévention, détection), la famine
  • Les extensions du modèle introduites dans Java 5 (Callable, Future, ExecutorService), les nouvelles collections
  • Le modèle Fork/Join
  • Les extensions avec CompletableFuture
  • Les divers outils de gestion de la concurrence :
    • Les verrous partagés / exclusifs, les sémaphores, les barrières cycliques
Exemple de travaux pratiques (à titre indicatif)
  • Construction d'une application multi-thread avec contraintes de concurrence

Aspects avancés : La programmation réflexive

  • Les objectifs et les principes
  • La découverte dynamique des informations relatives à une classe ou à un objet
  • L'instanciation et l'invocation dynamique
Exemple de travaux pratiques (à titre indicatif)
  • Construction d'une application utilisant la réflexivité

Jour 1 - Après-midi

Chargement et vérification des classes

  • Rôle du compilateur Java
  • Rôle des ClassLoader
  • Les différentes zones mémoires de la JVM (Java Virtual Machine) et leur gestion par le GC (Garbage Collector)
  • Hiérarchie des différents ClassLoader
  • Vérification du Bytecode
  • Chargement dynamique de classe
  • Implémenter un ClassLoader
Exemple de travaux pratiques (à titre indicatif)
  • Implémentation d'un ClassLoader chargeant des classes

Jour 2 - Matin

Accès aux bases de données relationnelles depuis Java

  • Les capacités de JDBC (Java Database Connectivity)
  • Les avantages des ORM (Object Relational Mapping)
  • Hibernate
    • Présentation et architecture
  • Installation et configuration
  • Persistance des classes et des attributs, associations et héritage
  • Mapping objet-relationnel avec JPA (Java Persistence API)
  • Présentation des EJB (Enterprise JavaBeans) Entity
  • Introduction à JPA (Java Persistance API)
  • Mapping objet-relationnel, rôle de la clé primaire, mapping des associations (one-to-many, many-to-one...)
  • L'héritage
  • JPQL (Java Persistence Query Language), le langage de requête orienté-objet

Jour 2 - Après-midi

Exemple de travaux pratiques (à titre indicatif)
  • Mise en oeuvre de l'accès à une base de données relationnelle en lecture et écriture, en utilisant JDBC et JPA sur Hibernate

Jour 3 - Matin

Les frameworks Java

  • Les frameworks
    • D'accès aux données
    • D'IHM (Interfaces Homme-Machine) serveur et client
    • De gestion de composants
    • Spring
  • Les objectifs de Spring et de ses extensions
  • Présentation de Spring Core
  • Spring et l'accès aux données
  • Spring et le Web, Spring MVC (Model-View-Controller)
  • Les couches applicatives avec Spring
  • Les frameworks de service Web
  • Jersey et REST (Representational State Transfer)
  • CXF et SOAP (Simple Object Access Protocol) / REST
  • Les frameworks d'interface graphique
  • Le framework JSF2 (JavaServer Faces 2.0)
  • Les frameworks concurrents client
Exemple de travaux pratiques (à titre indicatif)
  • Utilisation du framework Spring

Jour 3 - Après-midi

Tester ses applications en Java

  • Test Driven Development – Découvrir les grands principes du TDD
  • Cycle de développement du TDD
  • Les 3A : Arrange, Act, Assert
  • Remaniement de code : techniques de refactoring en TDD
  • Conception émergeante
  • Gestion des exceptions
  • Gestion des scénarios
  • JUnit – Savoir utiliser le framework JUnit pour implémenter des tests
  • Tests unitaires
  • Framework xUnit, implémentation Java : JUnit
  • Principe d'assertions
  • Alternatives à JUnit (TestNG)
  • Outillage complémentaire
  • Mise en oeuvre et bonnes pratiques
  • TDD
  • Correction des anomalies
  • Gestion de la montée en charge et de la sécurité des produits
  • Gestion de la performance
  • Les Stress tests
Exemple de travaux pratiques (à titre indicatif)
  • Utilisation de JUnit

Jour 4 - Matin

Le processus d'optimisation

  • Analyser
  • Coder
  • Mesurer pour vérifier
  • Les outils
  • Profiling
  • JVisualVM
  • Eclipse MAT
  • SoapUI
  • JMeter
Exemple de travaux pratiques (à titre indicatif)
  • Utilisation d'outils de profiling

Gestion mémoire et optimisation

  • L'organisation de la mémoire
  • Le ramasse-miettes
  • Le cycle de vie des objets
  • Configurer la mémoire et le GC
  • Mesure de la mémoire
  • Off Heap
  • La gestion de la mémoire et les performances
  • Les options de la JVM HotSpot pour le suivi de l'activité du GC
  • Fuite de mémoire
  • Fuite de ressources
  • Optimiser l'utilisation de la mémoire
  • Optimiser l'occupation mémoire
Exemple de travaux pratiques (à titre indicatif)
  • Utilisation des outils d'optimisation mémoire

Jour 4 - Après-midi

Nouveautés Java

  • Lambda fonctions
  • Streams et Streams parallèles
  • La gestion des modules
Exemple de travaux pratiques (à titre indicatif)
  • Développement d'une application utilisant les Lambdas, Streams et Modules

Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.

Modalités d’évaluation des acquis

  • En cours de formation, par des études de cas ou des travaux pratiques
  • Et, en fin de formation, par un questionnaire d'auto-évaluation

Partager cette formation Télécharger au format pdf Ajouter à mes favoris

Vous souhaitez suivre cette formation ?

Cette formation est disponible en présentiel ou en classe à distance, avec un programme et une qualité pédagogique identiques.

Tarif : à partir de 2 200 € HT.

Choisissez la modalité souhaitée pour vous inscrire :

Formation disponible en intra-entreprise

Votre société a besoin d'une offre personnalisée ? Contactez-nous

Faites-nous part de votre projet de formation, nous sommes là pour vous guider.

Contactez-nous