Cours

Digicomp Code JAVAA

Java - Programmation avancée («JAVAA»)

Dans cette formation, vous affinerez vos connaissances et compétences en programmation en Java.
Durée 4 jours
Prix 2'700.–   excl. 8.1% TVA

Description de la formation

  • 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
  • Réaliser des traitements parallèles
  • Gérer les accès concurrentiels (avec les sémaphores)
  • Mettre en place du code Java implémentant la notion de "promesse"
  • Tester, debugger et optimiser vos applications
  • Identifier les nouveautés Java
  1. 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
  2. Aspects avancés : la programmation réflexive
    • 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
    • Les objectifs et les principes
    • La découverte dynamique des informations relatives à une classe ou à un objet
    • L'instanciation et l'invocation dynamique
  3. Implémentation d'un ClassLoader chargeant des classes
    • Rôle du compilateur Java
    • Rôle des ClassLoaders
    • 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 ClassLoaders
    • Vérification du Bytecode
    • Chargement dynamique de classe
    • Implémenter un ClassLoader
    • Manipulation des énumérations
  4. Les nouveautés du switch et Record
    • Switch expressions
    • Pattern Matching instanceof
    • Record (classe de données simplifiée pour DTO)
  5. La console JShell Java
    • Principe REPL (Read-Eval-Print Loop)
    • Présentation de JShell Java
    • Fonctionnement interne de JShell
    • Utilisation de JShell (exemples)
  6. Process API, HTTP2 API
    • L'interface ProcessHandle
    • Gestion des processus depuis Java 9
    • Présentation de HTTP2 Client
  7. 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
  8. D'autres nouveautés Java
    • Lambda fonctions
    • Streams et Streams parallèles
    • La gestion des modules
  9. Le processus d'optimisation
    • Analyser
    • Coder
    • Mesurer pour vérifier
    • Les outils
    • Profiling
    • JVisualVM
    • Eclipse MAT
    • SoapUI
    • JMeter
  10. 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
Le formateur alterne entre méthode démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation). Cette formation s'adresse aux développeurs, architectes et chefs de projets techniques. Les participantes et participants doivent avoir une connaissance pratique du langage Java ou avoir suivi le cours suivant :

Téléchargement

Questions sur le cours

Choisissez votre session...