Objectifs du cours
Cette formation avancée permet d’approfondir les compétences en Java, en abordant des concepts avancés et des outils modernes pour développer des applications performantes et sécurisées. Les participants apprendront à :
- Comprendre le fonctionnement interne de la JVM et son impact sur la performance.
- Exploiter des frameworks Java avancés comme Spring et Hibernate.
- Maîtriser les concepts avancés du multithreading et de la programmation concurrente.
- Optimiser les applications et mettre en œuvre des pratiques de développement sécurisé.
Public
- Développeurs Java expérimentés, Étudiants avancés en informatique, Développeurs logiciels souhaitant approfondir Java.
Prérequis
- Maîtrise des bases du langage Java.
Contenu du cours
Partie 1 : Fonctionnement interne de Java et la JVM
- Architecture de la JVM et modèle de sécurité.
- Chargement des classes et gestion des Class Loaders.
- Vérification et exécution des fichiers .class.
- Gestion de la mémoire et optimisation du Garbage Collector.
- Débogage des erreurs de mémoire et analyse des OutOfMemoryError.
- Outils de monitoring et profiling (VisualVM).
Partie 2 : Sécurité et gestion des accès
- Rôle du Security Manager en Java.
- Gestion des fichiers .policy pour le contrôle des permissions.
Partie 3 : Programmation avancée avec Java
- Classes internes (statique, membre, locale, anonyme) et gestion des accès.
- Programmation générique : types paramétrés et méthodes génériques.
- Création et utilisation d’annotations personnalisées.
- Annotations multiples et principes avancés.
Partie 4 : Programmation concurrente et gestion des threads
- Concepts et spécificités du multithreading.
- États et gestion des threads.
- Synchronisation et utilisation des mutex (Lock, Condition).
- Optimisation avec les pools de threads.
- Utilisation du framework Executor pour le contrôle des tâches.
- Classes Atomic et collections concurrentes.
Partie 5 : Programmation fonctionnelle en Java
- Introduction aux expressions lambda et références de méthodes.
- Définition et mise en œuvre d’interfaces fonctionnelles (Consumer, Supplier, Predicate, Function).
Partie 6 : Modélisation et modularisation des applications
- Utilisation et structuration des modules Java (module-info.java).
- Gestion des dépendances entre modules.
- Déploiement et packaging de modules avec JAR modulaires.
- Migration des applications existantes vers un modèle modulaire.
Partie 7 : Débogage et optimisation des performances
- Techniques avancées de débogage avec les IDE.
- Utilisation des breakpoints conditionnels et des outils d’analyse en temps réel.
- Suivi de l’exécution et analyse des variables et objets.
Partie 8 : Accès aux bases de données avec Java
- Présentation de JDBC et correspondance entre types SQL et Java.
- Gestion des connexions et exécution de requêtes SQL.
- Requêtes paramétrées et procédures stockées avec JDBC.
- Introduction aux ORM (JPA, Hibernate) et gestion avancée des transactions.