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 / Compétences visées

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

Niveau requis

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

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

Certification (en option)

  • Prévoir l'achat de la certification en supplément
  • L'examen (en français) sera passé le dernier jour, à l'issue de la formation et s'effectuera en ligne
  • Il s'agit d'un QCM dont la durée moyenne est d'1h30 et dont le score obtenu attestera d'un niveau de compétence
  • La certification n'est plus éligible au CPF depuis le 31/12/2021, mais permettra néanmoins de valider vos acquis

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 ou une certification (M2i ou éditeur)

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.

Choisissez la modalité souhaitée pour vous inscrire :

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

Testez vos connaissances

Nos quizz vous guident dans le choix de formation.
Évaluez votre niveau de pré-requis pour découvrir la formation faite pour vous.

Accédez au test de connaissance

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

Contactez-nous