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
- 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
- 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
- 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
- Les nouveautés du switch et Record
- Switch expressions
- Pattern Matching instanceof
- Record (classe de données simplifiée pour DTO)
- La console JShell Java
- Principe REPL (Read-Eval-Print Loop)
- Présentation de JShell Java
- Fonctionnement interne de JShell
- Utilisation de JShell (exemples)
- Process API, HTTP2 API
- L'interface ProcessHandle
- Gestion des processus depuis Java 9
- Présentation de HTTP2 Client
- 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
- D'autres nouveautés Java
- Lambda fonctions
- Streams et Streams parallèles
- La gestion des modules
- Le processus d'optimisation
- Analyser
- Coder
- Mesurer pour vérifier
- Les outils
- Profiling
- JVisualVM
- Eclipse MAT
- SoapUI
- JMeter
- 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