Réservez les formations disponibles partout en France !

location-dot
location-dot
location-dot
À partir de
location-dot
image OF
  1. Accueil
  2. Numérique
  3. Développement et langage informatique
  4. Java
  5. Java - Programmation avancée
Java - Programmation avancée

Java - Programmation avancée

Qualiopi
En centre
Non éligible CPF
Sélectionnez une session :

Choisissez une date pour pouvoir réserver !

Objectifs
Programme

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.

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
Public visé

Développeurs, architectes et chefs de projets techniques.

Prérequis

Avoir une connaissance pratique du langage Java ou avoir suivi le cours JAV-SE "Java - Les fondamentaux de la programmation".

Choisissez une date pour pouvoir réserver !

Autres formations disponibles :
Prochaines sessions disponibles :25 août27 oct.17 nov.
Qualiopi
En centre
Non éligible CPF
formation
Mérignac (33700)
JSF 2 - Java Server Faces
Prochaines sessions disponibles :27 août29 oct.26 nov.
Qualiopi
En centre
Non éligible CPF
Prochaines sessions disponibles :15 sept.20 oct.24 nov.
Qualiopi
En centre
Non éligible CPF
Prochaines sessions disponibles :15 sept.15 sept.03 nov.03 nov.
Qualiopi
En centre
Non éligible CPF
Prochaines sessions disponibles :15 sept.15 sept.13 oct.13 oct.
Qualiopi
En centre
Non éligible CPF
logo ouformer
Réalisation :Definima
Utilisation des cookies

Nous utilisons des cookies pour vous fournir l'ensemble de nos services, notamment la recherche et les alertes. En acceptant, vous consentez à notre utilisation de ces cookies.

Tout refuser
Tout accepter