Formation Java advanced - m2i

3 jours (21 h)
Inter : 1 700,00 € HT/pers
Intra : nous consulter

Description title-border

Les objectifs

  • Deeper understanding of Java application architecture

  • Implement multithreading and database connectivity

  • Master JVM structure and performance tuning elements

Public visé

  • Developers already familiar with Java basics, willing to deepen their understanding

Prérequis

  • Completion of the "Java Essentials" course or equivalent knowledge:

  • Strong OOP foundations

  • Experience with exceptions, collections

Le programme

  • 1. 1\. Threads Basics

    • Creating Threads
    • Thread class
    • ○ Runnable and Callable functional interfaces
    • Thread Lifecycle
    • ○ New → Runnable → Running → Waiting → Terminated
    • Thread Priorities
    • ○ Thread.MIN\_PRIORITY → Thread.MAX\_PRIORITY
    • ○ OS-dependent scheduling
  • 2. 2\. Synchronization

    • synchronized keyword
    • Locks -> ReentrantLock (fair/unfair)
    • Shared resources
    • ○ Avoiding race conditions
    • ○ Ensuring mutual exclusion
  • 3. 3\. Advanced Concurrency Utilities

    • Executor Framework
    • ○ ExecutorService, Executors.newFixedThreadPool(),
    • newSingleThreadExecutor()
    • ○ Callable and Future for tasks with return values
    • Concurrent Collections
    • ○ CopyOnWriteArrayList, ConcurrentHashMap, ConcurrentLinkedQueue
    • ○ Thread-safe alternatives to standard collections
    • Queues
    • ○ BlockingQueue, ArrayBlockingQueue, LinkedBlockingQueue
    • ○ Producer-consumer pattern
  • 4. 4\. Semaphores

    • Semaphore
    • ○ Controls number of threads accessing a resource
    • ○ Acquiring and releasing permits
    • Practical use
    • ○ Limiting concurrent access
    • ○ Coordination between threads
  • 5. 5\. Concurrency Hazards

    • Deadlock
    • ○ Occurs when threads wait indefinitely for each other’s locks
    • ○ Avoid using consistent lock ordering and tryLock
    • Starvation
    • ○ Low-priority threads never get CPU
    • ○ Can occur with unfair locks or heavy thread contention
  • 6. 6\. Practical Exercises

    • Use ExecutorService to run multiple Callable tasks and collect results.
    • Protect a shared resource using synchronized and ReentrantLock.
    • Demonstrate CopyOnWriteArrayList with multiple threads adding/removing  elements.
    • Implement a Producer-Consumer pattern using BlockingQueue
    • Control thread access with Semaphore.
    • Demonstrate deadlock and starvation with multiple locks.
  • 7. JVM Internals & ClassLoaders

    • • Compilation with javac → bytecode
    • • ClassLoader hierarchy: Bootstrap / Extension / Application / Custom
    • • Memory zones: Heap, Stack, Metaspace, Code Cache
    • • Garbage Collectors: G1, ZGC…
    • Mini-conference: "Choosing the right GC for your project"
    • Bonus Workshop
  • Dernière mise à jour : 24 avril 2026

    En présentiel ou à distance : à vous de choisir

    Dans vos locaux

    Pour ancrer les apprentissages et encourager la dynamique collective.

    En classe virtuelle

    Pour allier flexibilité et interactions en temps réel avec le formateur.

    Dans nos locaux

    Pour favoriser la concentration, les échanges et le confort des apprenants.

    Les modalités de formation

    Suivi et évaluation :

    • Recueil des besoins en amont pour identifier les attentes du stagiaire
    • Évaluation continue : études de cas et travaux pratiques pendant la formation
    • Évaluation finale : questionnaire d'auto-évaluation

    Format et encadrement :

    • Formation équilibrée alliant théorie et pratique (minimum 50%)
    • Sessions en petits groupes (2 à 9 participants) pour un suivi personnalisé
    • Émargement par demi-journée et remise d'une attestation de formation

    Moyens pédagogiques et techniques :

    • Méthodes interactives et suivi des acquis : travaux pratiques, projet fil rouge, mises en situation, démonstrations, QCM…
    • Les stagiaires doivent être équipés de leur matériel informatique pour suivre la formation, que ce soit dans nos locaux ou sur site externe.
    • Il appartient au client de veiller à ce que le matériel mis à disposition soit conforme aux prérequis techniques indiqués dans le programme de formation.
    • Accessibilité : nous informons l'ensemble de nos clients et stagiaires que nous sommes dans la capacité d'adapter les sessions en cas de situations spécifiques. Nous nous engageons à répondre à toutes les demandes dans un délai de 48h ouvré.

    Conditions et délais d'accès :

    • Si l'une de nos formations vous intéresse, contactez-nous au +33 04 93 65 34 24 ou à l'adresse mail contact@le-code.dev. Selon votre besoin et vos attentes, nous organiserons un échange téléphonique avec le formateur pressenti afin d'adapter la formation et ses modules, puis nous vous adresserons un devis. Les dates de la formation seront à convenir sous 30 jours maximum.
    • Concernant les formations Actions Collectives, l'inscription est possible jusqu'à 24h ouvrées avant le début de la formation.