Moyens d'évaluation :
- Quiz pré-formation de vérification des connaissances (si applicable)
- Évaluations formatives pendant la formation, à travers les travaux pratiques réalisés sur les labs à l’issue de chaque module, QCM, mises en situation…
- Complétion par chaque participant d’un questionnaire et/ou questionnaire de positionnement en amont et à l’issue de la formation pour validation de l’acquisition des compétences
Pré-requis
Cette formation s’adresse à tout développeur possédant une connaissance du langage Java. La Formation Java les fondamentaux est un prérequis idéal pour tirer pleinement profit de cette formation
Objectifs
Cette formation Java Perfectionnement permet aux personnes ayant suivi une première initiation à Java d'approfondir leurs connaissances du langage afin d’intégrer directement une équipe projet.
La formation commence par détailler le fonctionnement interne de la JVM (Java Virtual Machine) afin que le développeur puisse diagnostiquer des problèmes liés à la conception de son programme. Vous apprenez ensuite à développer une application Java multitâches en gérant les threads. La formation vous initie également à la notion de design patterns (motifs de codes réutilisables) et présente les 5 design patterns les plus utilisés. Pour finir, vous apprendrez à utiliser le langage Java dans le contexte des bases de données relationnelles (JDBC, Hibernate), ce qui apporte donne une dimension de projet professionnel à la formation.
Concrètement, vous comprendrez la nécessité des tests à travers l’exemple de Junit, tout en découvrant les possibilités d’un outil comme Maven pour construire vos projets Java en automatisant certaines tâches (compilation, tests, dépendances, documentations, etc.).
Contenu
Fonctionnement de la JVM (Java Virtual Machine)
- Chargement des classes, Classloader, classpath
- Gestion de la mémoire, le garbage collector
- Le modèle de sécurité de Java
- La réflexion, les annotations
- Les outils d'inspection, debugger, surveillance, traces
Atelier
- Exécution d'exemples pédagogiques illustrant les concepts présentés
Programmation parallèle en Java
- Concepts et spécificités du multithreading par rapport à la programmation « traditionnelle »
- Les apports du framework Executor (invocation, ordonnancement, exécution, contrôle)
- Différences avec le temps réel
Atelier
- Écriture d’un chat en Java (multifenêtres en lecture/écriture, passage du jeton entre les threads)
Java et les design patterns
- Introduction aux design patterns, les documentations de référence
- Pattern singleton
- Patter Factory
- Pattern Decorator
- Pattern Builder
- Pattern Proxy
Atelier
- Implémentation des 5 patterns les plus répandus
Java et les bases de données
- Historique de l'accès aux données via Java, présentation de JDBC
- L'API JDBC, Connection, Statement, ResultSet
- Problématique de l'ORM et introduction à JPA
- Configuration JPA, l'exemple d'Hibernate
- Mapping basique, API de l'EntityManager, les transactions
- Mapping de l’héritage
- Mapping des associations, lazy-loading et cascading
- Le langage JPQL
- L'API criteria
- Les transactions longues
Atelier
- Mise en œuvre de JPA avec Hibernate pour rendre persistants des beans entités
- Utilisation du langage de requêtes JPQL pour rechercher des beans entités
- Mise en œuvre de l’héritage et d’associations unidirectionnelles et bidirectionnelles
Java et les tests unitaires
- Présentation, intérêt
- Automatisation et intégration des tests dans le processus de builds, l'exemple de Maven
- Mise en œuvre avec Junit4, assertions, annotations
- Cycle de vie d'exécution d'un test
- Données de tests
- Suite de tests
Atelier
- Création de tests Junit pour tester des classes
- Mise en œuvre d’une suite de tests
- Démonstrations autour de Maven
Moyens Pédagogiques :