Aller au contenu principal

M2I : 02. JAVA, programmation avancée

Durée

28 heures

Modalités

Formation
  • Classe virtuelle
  • Présentiel
Évaluation

L’évaluation des acquis se fait en cours de formation, par des études de cas ou des travaux pratiques et, en fin de formation, par un questionnaire

Prix

Inter
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
1176€ HT / personne
Intra
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
4704€ HT / groupe
4 stagiaires minimum

Public

Développeurs, chargés de développement d’applications informatiques, chefs de projets proches du développement…

Pré-requis

Maitriser le langage Java, connaître les concepts de bases de données relationnelles et du langage SQL, disposer d’une expérience en programmation Java.

Objectifs pédagogiques

- Maîtriser les aspects avancés du langage Java 

- Comprendre comment appliquer les principaux Frameworks et librairies Java. Comprendre le modèle de sécurité et le chargement des classes Java 

- Savoir programmer en Java dans le contexte des bases de données relationnelles 

- Savoir tester, debugger et optimiser ses applications 

- Appréhender les nouveautés Java

Programme détaillé

Jour 1 matin

§ Aspects avancés de Java

La programmation concurrente

Les concepts de la programmation multithread : 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 multithread : l'interblocage (caractérisation, évitement, prévention, détection), la famine.

Les extensions du modèle introduites dans Java.5 (Callable<T>, Future<T>,

ExecutorService. Les nouvelles collections.

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

Exemple de travaux pratiques (à titre indicatif)

Construction d'une application multithread avec contraintes de concurrence

§ Aspects avancés : La programmation réflexive

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)

Construction d'une application utilisant la réflexivité

Jour 1 après-midi

 

§ Chargement et vérification des classes

Rôle du compilateur Java

Rôle des classloader

Les différentes zones mémoires de la JVM et leur gestion par le garbage collector

Hiérarchie des différents classloader

Vérification du byte-code

Chargement dynamique ce classe

Implémenter un class loader

Exemples de travaux pratiques (à titre indicatif)

Implémentation d'un classloader chargeant des classes.

Jour 2 matin

 

§ Accès aux bases de données relationnelles depuis Java

Les capacités de JDBC

Les avantages des ORM

Hibernate

Hibernate : présentation et architecture

Installation et configuration

Persistance des classes et des attributs, associations et héritage

Mapping objet-relationnel avec JPA

Présentation des EJBs Entity

Introduction à JPA (Java Persistance API)

Mapping objet-relationnel, rôle de la clé primaire, mapping des associations (one-to-many,many-to-one etc.)

L’héritage

JPQL, le langage de requête orienté-objet

Jour 2 après-midi

 

Exemples de travaux pratiques (à titre indicatif)

Mise en œuvre de l’accès à une base de données relationnelle en lecture et écriture, en utilisant JDBC et JPA sur Hibernate

Jour 3 matin

§ Les Frameworks Java

Les Frameworks d’accès aux données

Les Frameworks d’IHM serveur et client

Les Frameworks de gestion de composants

Le Framework Spring

Les objectifs de Spring et de ses extensions

Présentation de Spring Core

Spring et l'accès aux données

Spring et le Web, Spring MVC

Les couches applicatives avec Spring

Les Frameworks de service web

Jersey et REST

CXF et Soap/Rest

Les Frameworks d'interface graphique

Le Framework JSF2

Les Frameworks concurrents client

Exemples de travaux pratiques (à titre indicatif)

Utilisation du Framework Spring

Jour 3 après-midi

§ Tester ses applications en Java

Test Driven Development – Découvrez 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 – Sachez utiliser le framework JUnit pour implémenter des tests

Tests unitaires

Framework xUnit, implémentation Java : jUnit

Principe d’assertions

Alternatives à jUnit (TestNG)

Outillage complémentaire

Mise en œuvre et bonnes pratiques

TDD

Correction des anomalies

Gestion de la montée en charge et de la sécurité des produits

Gestion de la performance

Les Stress tests

Exemples de travaux pratiques (à titre indicatif)

Utilisation de Junit

Jour 4 matin

§ Le processus d’optimisation

Analyser

Coder

Mesurer pour vérifier

Les outils

Profiling

JVisualVM

Eclipse MAT

SoapUI

JMeter

Exemples 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

Exemples de travaux pratiques (à titre indicatif)

Utilisation des outils d’optimisation mémoire

Jour 4 après-midi

§ Nouveautés Java

Lambda fonctions

Streams et Streams parallèles

La gestion des modules

Exemples de travaux pratiques (à titre indicatif)

Développement d’une application utilisant les Lambdas, Streams et Modules

Sessions

Filtrer les résultats
Modalités pédagogiques
Formation synchrone se déroulant avec la présence physique du (des) formateur(s) et du (des) apprenant(s) réunis dans un même lieu de formation.
Formation combinant des séquences en présentiel et des séquences à distance synchrones ou asynchrones.
Formation à distance, asynchrone, s’appuyant sur une plateforme d’apprentissage, pouvant être complétée par d’autres modalités de formation à distance (visio-conférence…)
Formation à distance, synchrone, s’appuyant sur un dispositif de visio-conférence. La classe virtuelle recrée à distance les conditions d’une formation en salle traditionnelle.
Type de formation
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
Options
Les compétences professionnelles visées par la formation sont validées via un test permettant d’obtenir une certification officielle.
Ces sessions ne peuvent être ni annulées ni reportées par l’organisme de formation.