Java - Programmation avancée

Qualiopi
À partir de 2240 €
Durée 28h en 4 jours
Localisation Partout en France
Logo de M2I - Java - Programmation avancée

Proposé par

M2I

Prérequis

Avoir une connaissance pratique du langage Java ou avoir suivi le cours

Public admis

  • Salarié en Poste
  • Entreprise

Demandeur d'emploi et Etudiant non admis

Financement

  • Votre OPCO
  • Financement personnel

Financement CPF non pris en charge

Modalités

  • En centre
  • À distance

Objectifs pédagogiques

A l'issue de cette formation, vous serez capable de :

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

Programme de la formation

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
Exemple de travaux pratiques (à titre indicatif)
  • Construction d'une application multi-thread avec contraintes de concurrence

Jour 1 - Après-midi

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
Exemples de travaux pratiques (à titre indicatif)
  • Mise en pratique sur :
    • La programmation parallèle
    • Le CompletableFuture
    • Les sémaphores

Jour 2 - Matin

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
Exemples de travaux pratiques (à titre indicatif)
  • Quelques exemples de chargement de classes et traitements des annotations personnalisées

Jour 2 - Après-midi

Les nouveautés du switch et Record

  • Switch expressions
  • Pattern Matching instanceof
  • Record (classe de données simplifiée pour DTO)
Exemple de travaux pratiques (à titre indicatif)
  • Mise en oeuvre des instructions Switch

Jour 3 - Matin

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
Exemples de travaux pratiques (à titre indicatif)
  • Programmation d'un cas d'école avec la console JShell
  • Mise en pratique d'un client HttpClient avec Java 9

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
Exemple de travaux pratiques (à titre indicatif)
  • Utilisation de JUnit

Jour 4 - Matin

D'autres 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

Jour 4 - Après-midi

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

Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.

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
Logo de M2I - Formation Java - Programmation avancée

Proposé par

M2I

"Un leadership dans le domaine de la formation"

Voir la fiche entreprise
À partir de 2240 €
Logo de M2I - Java - Programmation avancée

Java - Programmation avancée

0 ville proposant cette formation
Logo

La 1ère plateforme pour trouver une formation, choisir son orientation ou construire son projet de reconversion.

© 2024 France Carrière. Tous droits réservés.