Réservez les formations disponibles partout en France !

location-dot
location-dot
location-dot
À partir de
location-dot
image OF
  1. Accueil
  2. Numérique
  3. Développement et langage informatique
  4. Java
  5. Java - Nouveautés des versions 8 à 22
Java - Nouveautés des versions 8 à 22

Java - Nouveautés des versions 8 à 22

Qualiopi
En centre
Non éligible CPF
Sélectionnez une session :
Mérignac :
TEAMS-CAD :

Choisissez une date pour pouvoir réserver !

Objectifs
Programme

A l'issue de cette formation, vous serez capable de :

  • Exploiter les principaux apports des versions de la Java Development Kit (JDK) 8 à 22
  • Exploiter des lambda expressions en passant par les streams et l'API DateTime
  • Gérer des modules en passant par les étapes d'une migration réussie
  • Reconnaître les améliorations apportées au langage au fil des versions
  • Utiliser les bases du langage Java avec une meilleure productivité.

Jour 1

Rappels des apports en programmation concurrente (JDK 7 et plus)

  • Le package java.util.concurrent
  • Les facilités apportées pour le multi-threading et la programmation parallèle
  • Le Fork and Join

Exemple de travaux pratiques (à titre indicatif)

  • Mise en oeuvre d'un programme utilisant le pattern Fork and Join

Les lambda en Java (JDK 8 et plus)

  • S'approcher de lambda sans Java 8
  • Les lambda expressions
  • Les interfaces fonctionnelles
  • Liste des interfaces fonctionnelles
  • Paramètres d'une lambda expression
  • Cas d'utilisation des lambda expressions
  • Les références de méthode dans les lambda expressions

Exemples de travaux pratiques (à titre indicatif)

  • Création d'un nouveau projet
  • Utilisation des interfaces fonctionnelles fournies et créées
  • Utilisation des lambda expressions sous différentes formes
  • Simplification de la programmation avec les lambda

Les streams (JDK 8 et plus)

  • Présentation générale des streams
  • Créer des streams
  • Opérations intermédiaires sur les streams
  • Opérations terminales

Exemples de travaux pratiques (à titre indicatif)

  • Création d'un nouveau projet
  • Application de la gestion des streams à des flux de données fournis
  • Opérations de création, intermédiaires et finales

L'API DateTime (JDK 8 et plus)

  • Classes importantes de DateTime
  • Utilisation de DateTime

Exemple de travaux pratiques (à titre indicatif)

  • Exploitation de l'API DateTime

Jour 2

Le système de modules (JDK 9 et plus)

  • Architecture et modularité dans le JDK 9
  • La déclaration des modules
    • Requires
    • Exports
    • Uses
    • Provides
    • With
    • Opens
  • Les mots réservés
  • Exemples des classes d'applications modularisées
  • Le fichier module-info.java
  • Le graphe de dépendances
  • Lancer une application à partir des modules
  • Le packaging des modules et les JAR
  • Exporter un package pour l'utiliser ailleurs
  • Encapsulation forte et accessibilité

Exemples de travaux pratiques (à titre indicatif)

  • Création d'une application utilisant les modules
  • Migration d'une application non modulaire vers le système de module
  • Compatibilité du système modulaire avec l'existant

JShell (JDK 9 et plus)

  • Introduction à JShell
  • Exécuter et tester du code à la volée

Exemple de travaux pratiques (à titre indicatif)

  • Utilisation de l'outil JShell

L'API Optional (JDK 9 et plus)

  • Les méthodes
    • or()
    • ifPresent()
    • ifPresentOrElse()
    • stream()

Exemple de travaux pratiques (à titre indicatif)

  • Exploitation de l'API Optional afin de gérer les références nulles

L'API Process (JDK 9 et plus)

  • Gestion des process lancés
  • L'interface ProcessHandle

Exemple de travaux pratiques (à titre indicatif)

  • Création d'un outil d'administration des process lancés

Jour 3

Autres apports de la JDK 9

  • Améliorations des streams Java 8
  • L'API HTTP 2
  • Nouvelles collections
  • Les Reactive Streams, les streams asynchrones
  • Méthodes privées d'interface
  • L'API CompletableFuture

Exemple de travaux pratiques (à titre indicatif)

  • Utilisation des Reactive Streams

Apports de la JDK 10

  • Inférence de type de variables locales
  • Améliorations dans les API existantes

Apports de la JDK 11

  • Inférences de type pour les lambda expressions
  • Simplification des "run" de programmes
  • Améliorations dans les classes String, StringBuilder et StringBuffer
  • Améliorations des Predicate Java 8
  • Classes imbriquées et visibilité des attributs
  • Suppression des modules JEE, JavaJX et CORBA

Exemple de travaux pratiques (à titre indicatif)

  • Test des fonctionnalités apportées par la JDK 11

Apports de la JDK 12 et 13

  • Le switch comme instruction
  • Les blocs de texte
  • Le mot-clé "yield"
  • Les outils apportés par la JDK 12

Exemple de travaux pratiques (à titre indicatif)

  • Test des fonctionnalités apportées par les JDK 12 et 13

Apports de la JDK 14

  • Changements dans les switch
  • Clarifications du NullPointerException
  • Le Live Monitoring
  • Changements dans le "instanceof"
  • Nouveaux outils associés à la JDK 14

Apports de la JDK 15

  • Les classes "Sealed"
  • Fonctionnalités dépréciées

Apports de la JDK 16

  • L'outil "jpackage"

Apports de la JDK 17

  • Interfaces "Sealed"
  • Les "Type Records"

Exemple de travaux pratiques (à titre indicatif)

  • Test des fonctionnalités apportées par les JDK 14 à 17

Apports de la JDK 18

  • Le Simple Web Server

Apports de la JDK 19, 20 et 21

  • Les projets Amber, Panama et Loom
  • Les threads virtuels pour l'optimisation des ressources
  • L'interface Thread.Builder et la méthode VirtualThreadStart
  • La Structured Concurrency
  • Amélioration du switch
  • Les Record Patterns et la déconstruction
  • Les String Templates
  • Les Foreign Functions et Memory API
  • Accès aux données Off-Heap
  • L'API Vector
  • Modifications dans HashMap et HashSet
  • Les Scoped Values vs ThreadLocal

Apports de la JDK 22

  • Les unnamed variables et patterns
  • Les classes déclarées implicitement
  • Modifications dans l'appel de l'instruction "super"
  • Les Stream Gatherers
  • L'API Class-File
  • Le lancement de programmes multi source sans compilation

Exemple de travaux pratiques (à titre indicatif)

  • Test des fonctionnalités apportées depuis les JDK 18 à 22
Public visé

Développeurs, architectes et chefs de projets techniques.

Prérequis

Avoir suivi le cours JAV-SE "Java - Les fondamentaux de la programmation" ou avoir une connaissance pratique du langage Java.

Choisissez une date pour pouvoir réserver !

Autres formations disponibles :
Prochaines sessions disponibles :25 août27 oct.17 nov.
Qualiopi
En centre
Non éligible CPF
Prochaines sessions disponibles :25 août22 sept.27 oct.24 nov.
Qualiopi
En centre
Non éligible CPF
formation
Mérignac (33700)
JSF 2 - Java Server Faces
Prochaines sessions disponibles :27 août29 oct.26 nov.
Qualiopi
En centre
Non éligible CPF
Prochaines sessions disponibles :15 sept.15 sept.03 nov.03 nov.
Qualiopi
En centre
Non éligible CPF
Prochaines sessions disponibles :15 sept.15 sept.13 oct.13 oct.
Qualiopi
En centre
Non éligible CPF
logo ouformer
Réalisation :Definima
Utilisation des cookies

Nous utilisons des cookies pour vous fournir l'ensemble de nos services, notamment la recherche et les alertes. En acceptant, vous consentez à notre utilisation de ces cookies.

Tout refuser
Tout accepter