Java Core avancé – 6H

Heure 1: Généricité (Generics) (1 heure)

  1. Concepts de base des Génériques
    • Pourquoi utiliser les génériques ?
    • Types génériques et avantages
  2. Classes et Méthodes Génériques
    • Définir des classes et méthodes génériques
    • Wildcards (? extends, ? super)
    • Bounded types (types bornés)
    • Exercices pratiques.

Heure 2: Modificateurs d’accès avancés et annotations (1 heure)

  1. Modificateurs d’accès
    • Modificateurs final, static, et transient
    • Variables constantes et membres de classe statiques
  2. Annotations
    • Comprendre les annotations intégrées (comme @Override, @Deprecated)
    • Créer des annotations personnalisées
    • Annotations de traitement avec Reflection
    • Exercices pratiques.

Heure 3: Envolée dans les Collections Avancées (1 heure)

  1. Collections Avancées
    • Comparaison entre ArrayList et LinkedList
    • Différences entre HashSet et TreeSet
    • Comparer les performances des structures de données
  2. Comparateurs et Tri
    • Interface Comparable vs Comparator
    • Tri personnalisé des objets avec Comparator
    • Exercices pratiques.

Heure 4: Concurrence et Multithreading (1 heure)

  1. Concepts de Base du Multithreading
    • Threads et processus
    • Créer et gérer des threads avec Runnable et Thread
  2. Gestion de la Concurrence
    • Synchronisation, verrous (synchronized, Lock)
    • Exécuteurs (ExecutorService)
    • Classes atomiques (AtomicInteger, etc.)
    • Exercices pratiques.

Heure 5: Entrée/Sortie (I/O) et NIO (1 heure)

  1. API classique de Java I/O
    • Utilisation de File, FileInputStream, FileOutputStream
    • Bufférisation avec BufferedReader et BufferedWriter
  2. API Java NIO
    • Avantages de NIO par rapport à I/O traditionnel
    • Utilisation des classes Path, Files et ByteBuffer
    • Canal (Channel) et sélecteurs (Selector)
    • Exercices pratiques.

Heure 6: API Stream Avancée et Manipulation des Données (1 heure)

  1. Opérations sur les Streams
    • Transformations avancées avec map, flatMap
    • Réductions et Collectors (groupBy, partitioningBy)
  2. Programmation Fonctionnelle avec Streams
    • Lazy evaluation et parallel streams
    • Optimisation de la performance des Streams
    • Exercices pratiques.

Description

en_USEnglish