JAVA POO avancée et librairies Java
Description
-
Concepts avancés de la programmation OO : encapsulation, héritage, polymorphisme
-
Les classes internes et anonymes
-
Gestion avancée des exceptions et des ressources
-
Utilisation de la bibliothèque des collections (Collections Framework)
-
Les Streams et la programmation fonctionnelle en Java 8+
-
Utilisation des expressions lambda
-
Utilisation des interfaces fonctionnelles et des méthodes par défaut
-
Les generics en Java
-
Bibliothèques Java courantes : Apache Commons, Google Guava, Jackson pour la sérialisation JSON
-
Manipulation des fichiers avec NIO (New I/O)
-
Programmation multi-thread avec les bibliothèques Java Concurrency
-
Introduction à la programmation réactive avec RxJava
Cette formation s'adresse à toute personne souhaitant utiliser es concepts avancés de la programmation orientée objet (OO) en Java ainsi que sur l’utilisation de bibliothèques Java courantes.
Quels sont les buts de la formation ?
-
Utiliser les concepts avancés de la programmation orientée objet en Java
-
Comprendre et utiliser les collections avancées et les Streams Java
-
Utiliser des bibliothèques Java pour simplifier les tâches courantes comme la manipulation de fichiers, la gestion des ressources et le traitement des données
-
Savoir implémenter des solutions concurrentes en utilisant Java Concurrency et des threads
-
Découvrir la programmation réactive avec RxJava
Que devez vous connaître pour suivre la formation ?
Bonne maîtrise de la programmation Java de base et de la programmation orientée objet.
Programme de la formation
Programmation orientée objet avancée en Java
-
Révision des concepts de base : héritage, encapsulation, polymorphisme
-
Classes internes, classes locales et classes anonymes
-
Conception de classes immuables et final
-
Les interfaces et les classes abstraites avancées
-
Gestion avancée des exceptions (try-with-resources, suppression d'exceptions)
-
Modèles de conception courants (Design Patterns) : Singleton, Factory, Observer, Strategy
Les Generics en Java
-
Introduction aux Generics : pourquoi et comment les utiliser
-
Création de classes et de méthodes génériques
-
Les wildcards (? extends, ? super)
-
Les avantages et inconvénients des Generics dans le code Java
Bibliothèque des Collections Java (Collections Framework)
-
Les collections de base : List, Set, Map
-
Collections synchronisées et non synchronisées
-
Utilisation des classes utilitaires : Collections et Arrays
-
Itérateurs et manipulation des collections avancées
-
Introduction à la programmation fonctionnelle avec les Streams Java
-
Opérations sur les Streams : filter, map, reduce
-
Parallélisme avec les Streams
Programmation fonctionnelle en Java 8+
-
Introduction aux lambdas : syntaxe et usage
-
Interfaces fonctionnelles et méthodes par défaut
-
Utilisation des lambdas avec les collections
-
Méthodes de référence et leur usage dans le code Java
Gestion des fichiers et flux avec NIO
-
Introduction à l’API NIO (New I/O)
-
Manipulation des fichiers avec Path, Files et FileVisitor
-
Gestion des canaux (Channels) et des buffers (Buffers)
-
Gestion asynchrone des fichiers avec NIO.2
Programmation concurrente en Java
-
Introduction aux Threads et au modèle de mémoire Java
-
Création et gestion de threads (Runnable, Callable)
-
Synchronisation, locks et gestion des données partagées
-
Executors et gestion des pools de threads
-
Outils de synchronisation avancée : CountDownLatch, Semaphore, CyclicBarrier, etc.
-
Introduction à java.util.concurrent et la gestion des tâches asynchrones
Utilisation des bibliothèques Java courantes
-
Apache Commons : manipulation des fichiers, gestion des ressources, collections avancées
-
Google Guava : caches, collections immuables, utilities
-
Jackson : sérialisation et désérialisation JSON
Introduction à la programmation réactive avec RxJava
-
Qu'est-ce que la programmation réactive ?
-
Principes fondamentaux de RxJava : Observables, Subscribers, Operators
-
Création de flux réactifs en Java
-
Gestion de la concurrence réactive
Exercices pratiques
-
Conception de classes avancées en Java, utilisation des Generics
-
Manipulation des collections avancées avec les Streams
-
Programmation multi-thread avec les pools de threads et les outils de synchronisation
-
Manipulation de fichiers avec l'API NIO
-
Utilisation d’Apache Commons et Google Guava pour des tâches courantes
-
Sérialisation et désérialisation d’objets en JSON avec Jackson
-
Mise en place de la programmation réactive avec RxJava