Formation

Java

Organisme responsable juridiquement de la formation
M2i Scribtel - Scribtel Formation

  • Tout public
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
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Durée totale : 35heures
5 jours
Formacode (Domaines de formation) :
  • 30802 Langage java
Rome (Métiers) :
  • M1805 Études et développement informatique
NSF (Spécialités de formation) :
  • 326 Informatique, traitement de l'information, réseaux de transmission des données

Modalités pédagogiques
Inter-entreprise. Le formateur alterne entre méthode démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).Formation délivrée en présentiel ou distanciel

Entrées/sorties à dates fixes

Formation 100% à distance