Objectifs

Distinguez les aspects avancés du langage Java. Appliquez les principaux frameworks et librairies Java. Programmez en Java dans le contexte des bases de données relationnelles, testez, debugger et optimisez vos applications. Identifiez les nouveautés Java.

Pré requis

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

Évaluation

Qu’il s’agisse de classe virtuelle ou présentielle, des évaluations jalonneront la formation : tests réguliers des connaissances, cas pratiques, certification ou validation par un diplôme à l’issue de l'action par les stagiaires, au regard des objectifs visés.

01 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

- 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

02 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

03 Chargement et vérification des classes

- Rôle du compilateur Java

- Rôle des ClassLoader

- 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 ClassLoader

- Vérification du Bytecode

- Chargement dynamique de classe

- Implémenter un ClassLoader

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

- Les capacités de JDBC (Java Database Connectivity)

- Les avantages des ORM (Object Relational Mapping)

- Hibernate

Présentation et architecture

- Installation et configuration

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

- Mapping objet-relationnel avec JPA (Java Persistence API)

- Présentation des EJB (Enterprise JavaBeans) Entity

- Introduction à JPA (Java Persistance API)

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

- L'héritage

- JPQL (Java Persistence Query Language), le langage de requête orienté-objet

05 Les frameworks Java

- Les frameworks

D'accès aux données
D'IHM (Interfaces Homme-Machine) serveur et client
De gestion de composants
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 (Model-View-Controller)

- Les couches applicatives avec Spring

- Les frameworks de service Web

- Jersey et REST (Representational State Transfer)

- CXF et SOAP (Simple Object Access Protocol) / REST

- Les frameworks d'interface graphique

- Le framework JSF2 (JavaServer Faces 2.0)

- Les frameworks concurrents client

06 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

- Framework xUnit, implémentation Java : JUnit

- Principe d'assertions

- Alternatives à JUnit (TestNG)

- Outillage complémentaire

- Mise en oeuvre 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

07 Le processus d'optimisation

- Analyser

- Coder

- Mesurer pour vérifier

- Les outils

- Profiling

- JVisualVM

- Eclipse MAT

- SoapUI

- JMeter

08 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

09 Nouveautés Java

- Lambda fonctions

- Streams et Streams parallèles

- Gérer des modules

Ces formations peuvent aussi vous intéresser

Voir toutes les formations. Cliquez ici