DE554
Technologies de l'information

Java 8 à Java 25 : explorer les évolutions du langage, des API et de la JVM

Comprendre et mettre en œuvre les innovations majeures de la plateforme Java depuis Java 8


Près de dix ans séparent Java 8 de Java 25. Ce cycle long, ponctué de versions semestrielles, a vu le langage Java, la bibliothèque standard (Java SE) et la JVM (Java Virtual Machine) évoluer en profondeur, au rythme des JEP (JDK Enhancement Proposals) et des projets OpenJDK tels que Amber, Loom ou Valhalla.

De la programmation fonctionnelle introduite par les lambdas aux virtual threads en passant par les records, le pattern matching, les nouveaux types de collections, les mécanismes de concurrence structurée ou la génération d’images natives avec GraalVM, les apports sont nombreux et parfois sous-exploités en entreprise.

Cette formation propose une vue d’ensemble actualisée et structurée des principales évolutions du langage, de l’écosystème standard (SE) et de la machine virtuelle. Chaque nouveauté est contextualisée, mise en perspective, puis expérimentée à travers l'adaptation progressive d’un projet applicatif fil rouge.

Objectif

Explorer les évolutions majeures du langage Java, de son écosystème et de la machine virtuelle pour actualiser ses pratiques de développement.

Est-ce pour vous ?

Développeurs et développeuses Java, architectes logiciels, intervenant·es techniques impliqué·es dans la maintenance, l’évolution ou la modernisation d’applications Java existantes (Java 8 ou antérieur)

Préalables

Ce cours demande une connaissance solide des bases de la programmation Java (principes de la programmation orientée objet, types génériques, annotations, expressions lambda), une habitude de travailler avec Eclipse ou IntelliJ.

Vos gains

  • Mettre en œuvre a programmation fonctionnelle avec les expressions lambda;
  • Représenter des données avec les records;
  • Écrire une logique conditionnelle avancée avec le pattern matching;
  • Exécuter les opérations I/O ne manière non bloquantes avec les virtual threads;
  • Appliquer le parallélisme avec les StructuredTask;
  • Livrer une application native avec GraalVM.
  • Contenu

    Cette formation combine exemples pratiques et évolutions théoriques pour passer en revue les différentes strates de la plateforme Java (langage, API, JVM). Chaque module s’appuie sur un projet applicatif enrichi au fil des étapes, pour expérimenter les apports récents du langage dans des cas d’usage concrets.

    Introduction

    Ce module fournit les repères nécessaires pour suivre l’évolution de Java à travers ses versions. Il présente le fonctionnement du cycle de release, les JEP (propositions d’amélioration du JDK) et les projets phares de l’OpenJDK.

    • Le cycle de release des versions de Java.
    • Présentation des JEP (JDK Enhancement Proposal).
    • Présentation des projets Amber, Panama, Loom, Leyden, Valhalla.
    • Frontières entre langage, API et JVM

    Java 8 : les fondations du Java moderne

    Java 8 introduit la programmation fonctionnelle (lambdas, Stream API), une nouvelle API date/temps, ainsi que des outils devenus standards (Optional, CompletableFuture). Ce module revient sur ces piliers souvent sous-utilisés ou mal exploités.

    • Les expressions lambda et leur traitement par la JVM (invoke dynamic).
    • La représentation du temps avec les classes du package java.time.
    • L'application du paradigme Map Reduce avec les Stream.
    • La classe Optional pour limiter les NullPointerException.
    • Le parallélisme avec CompletableFuture.
    Voir plus +/-

    Java 8 : les fondations du Java moderne

    Java 8 introduit la programmation fonctionnelle (lambdas, Stream API), une nouvelle API date/temps, ainsi que des outils devenus standards (Optional, CompletableFuture). Ce module revient sur ces piliers souvent sous-utilisés ou mal exploités.

    • Les expressions lambda et leur traitement par la JVM (invoke dynamic).
    • La représentation du temps avec les classes du package java.time.
    • L'application du paradigme Map Reduce avec les Stream.
    • La classe Optional pour limiter les NullPointerException.
    • Le parallélisme avec CompletableFuture.

    Mise en pratique: intégration des Optional, Stream et des expressions lambda dans le projet fil rouge, analyse du bytecode et du principe invoke dynamic..

    API Java SE : évolutions des types de base

    Ce module explore les améliorations progressives apportées à l’API standard : Factory Methods, Collections, String, Stream, Optional... L’objectif est de moderniser le code existant avec des pratiques plus concises et robustes.

    • Les factory methods pour une instanciation plus concise.
    • De nouvelles méthodes utilitaires dans la classe Objects.
    • Les sequenced collections: retro-conception de l'API java.util.Collection.
    • Les nouvelles méthodes de la classe String.
    • Les nouvelles méthodes de l'interface Stream, les nouveaux Collector.
    • Les nouvelles méthodes de la classe Optional.
    • StableValue pour renforcer l'immutabilité.

    Mise en pratique: refonte d’un traitement applicatif avec les nouvelles méthodes standard.

    Project Amber: la manipulation de données plus expressive

    Project Amber introduit plusieurs évolutions syntaxiques majeures, permettant d’alléger le code et de le rendre plus lisible : records, switch enrichi, pattern matching, text blocks…

    • Les nouvelles expressions switch.
    • Le pattern matching pour le traitement de données hétérogènes.
    • Les records pour la représentation des données.
    • Les sealed classes et sealed interfaces.
    • Les text blocks.

    Mise en pratique : manipulation de données avec les records, écriture de branchements complexes avec le pattern matching.

    Project Loom: l'exécution non bloquante des opérations I/O

    Avec Loom, Java propose une nouvelle approche de la concurrence fondée sur les virtual threads. Ce module illustre leurs usages, la gestion de contexte (scoped values) et les traitements structurés asynchrones.

    • Les virtual threads pour gagner en scalabilité.
    • Les scoped values comme alternative aux ThreadLocal.
    • Les StrucuturedTaskScope pour un code asynchrone sans callbacks.

    Mise en pratique : activation des virtual thread sur une application web, écriture de traitements de données parallélisés.

    Les évolutions de la JVM

    Ce module clôt la formation en présentant les dernières innovations de la JVM Java pour mieux s’adapter aux environnements récents : conteneurs, compilation en natif, collecte mémoire optimisée…

    • L'adaptation de la JVM aux conteneurs.
    • GraalVM pour la livraison d'application natives.
    • Les garbages collectors G1 et ZGC pour une gestion optimisée de la mémoire.

    Mise en pratique: génération d’une application native avec GraalVM et livraison conteneurisée

    💡 Informations utiles

    Nos formations sont offertes à Montréal ou Québec en présentiel ou en format virtuel. Les dates et lieux sont précisés lors de votre choix de session ci-dessous. Si vous avez des questions concernant l'inscription, les horaires, la langue d’enseignement ou les modalités d’annulation, consultez notre FAQ .

    Intervenants

    Durée
    2 jours
    Horaire
    Voir les dates de formations pour plus de détails
    Tarif régulier
    1 035 $
    Tarif préférentiel Un tarif préférentiel est accordé pour chacun des cours aux organismes publics, aux membres de certaines associations ainsi qu’aux entreprises ayant une entente avec Technologia (voir FAQ). Pour la liste complète des entités admissibles, consulter la section « Tarification » des FAQ. Notez également qu’aucun tarif préférentiel n’est accordé pour les formations en ligne. Les rabais accordés sur les formations ne peuvent être cumulables avec aucune autre promotion.
    930 $
    Formation en entreprise

    Vous avez plusieurs employés intéressés par une même formation? Que ce soit en présentiel dans vos bureaux ou à distance en mode virtuel, nous offrons des formations privées adaptées aux besoins de votre équipe. Des tarifs de groupes sont disponibles. Contactez-nous pour plus de détails ou demandez une soumission en ligne.

    Demander une soumission

    Demander une formation en entreprise

    Vous avez plusieurs employés intéressés par une même formation? Que ce soit en présentiel dans vos bureaux ou à distance en mode virtuel, nous offrons des formations privées adaptées aux besoins de votre équipe. Des tarifs de groupes sont disponibles. Contactez-nous pour plus de détails ou demandez une soumission en ligne.

    Dites-nous en plus
    Ajout effectué Voir mon panier