Cours

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

Objectifs
  • 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
Contenu
  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
Méthodologie & Didactique
Le formateur alterne entre méthode démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).
Public cible
Cette formation s'adresse aux développeurs, architectes et chefs de projets techniques.
Prérequis
Les participantes et participants doivent avoir une connaissance pratique du langage Java ou avoir suivi le cours suivant :

    Java - Fondamentaux de la programmation («JAVAF»)

    5 jours
    • Genève, Lausanne
    CHF
    3'375.–

Téléchargement

Questions sur le cours

Avez-vous des questions?
Prénom
Nom
Société optionnel
e-mail
Téléphone
Je souhaite réserver ce cours en tant que cours d'entreprise
Prénom
Nom
Société optionnel
e-mail
Téléphone
Nombre de participants
Lieu de formation souhaité
Date de début (DD.MM.YYYY)
Date de fin (DD.MM.YYYY)

Choisissez votre session...

19
mai
2025
22
mai
2025
Lausanne
Français
Horaires
CHF 2’700.-
excl. 8.1% TVA
CHF 2’700.-
excl. 8.1% TVA
30
JUN
2025
3
JUL
2025
Genève
Français
Horaires
CHF 2’700.-
excl. 8.1% TVA
CHF 2’700.-
excl. 8.1% TVA
11
aoû
2025
14
aoû
2025
Lausanne
Français
Horaires
CHF 2’700.-
excl. 8.1% TVA
CHF 2’700.-
excl. 8.1% TVA
22
sep
2025
25
sep
2025
Genève
Français
Horaires
CHF 2’700.-
excl. 8.1% TVA
CHF 2’700.-
excl. 8.1% TVA
3
nov
2025
6
nov
2025
Lausanne
Français
Horaires
CHF 2’700.-
excl. 8.1% TVA
CHF 2’700.-
excl. 8.1% TVA
15
déc
2025
18
déc
2025
Genève
Français
Horaires
CHF 2’700.-
excl. 8.1% TVA
CHF 2’700.-
excl. 8.1% TVA
Prochaine date
19
mai
2025
22
mai
2025
Lausanne
Français
Horaires
CHF 2’700.-
excl. 8.1% TVA
CHF 2’700.-
excl. 8.1% TVA