Formation Java 11
1700€
1530€HT/ personne
3 jours (21 heures)
Présentation
Java 9 est la dernière évolution technologique du langage et de la plateforme d’Oracle Java SE (Standard Edition). Sortie en Septembre 2017, avec plus de 80 nouveautés, elle complète l’importante refonte orchestrée depuis Mars 2014 avec Java 8 (Expression Lambdas, Streams, Optional) en mettant l’accent sur la modularité.
Dans cette formation vous verrez toutes les nouveautés apportées par les versions majeures de Java 8 et Java 9, ainsi que les bonnes pratiques de développement pour démarrer un projet sereinement !
Concernant Java 8 il sera question de passer en revue l’ajout des Lambdas, la refonte de l’API, les Dates, les Collections, les Streams, ainsi que la programmation fonctionnelle.
Coté Java 9, nous verrons entre autres comment modulariser vos projets avec Jigsaw, Kulla / JShell un puissant Shell dédié au test read-eval-print-loop (REPL), l’amélioration des types avec le projet Valhalla, ainsi que le support natif du format JSON et de HTTP/2.
Comme dans toutes nos formations, celle-ci vous présentera la toute dernière version de Java (à la date de rédaction de l’article : JDK 11).
Objectifs
- Maîtriser les nouveautés de Java 8 & 9 : Lambdas, Stream, Date & Time, Nashorn
- Comprendre le système de modules sur Java 9
- Migrer une application de Java 8 à Java 9
- Utiliser JShell / REPL pour tester votre code
Public visé
Développeurs, Architectes
Pré-requis
Connaissances en programmation objet, et Java 8 fortement recommandé
Programme de la formation Java
Les fondamentaux
- Plus de 200 nouveautés (nouvelles entités, classes, interfaces…)
- Les expressions lambda
- Les implémentations par défaut des interfaces et @FunctionalInterface
- Les nouvelles annotations
- Les évolutions des streams
- Nouvelle écriture SQL dans Java 8
- La nouvelle API de gestion des dates et des heures
- Les évolutions d’API de java.lang, java.util, java.net…
- Exécuter du code JavaScript avec Java 8 Nashorn
Lambda expression
- Classe anonyme, concept d’expression lambda
- Nouvelle syntaxe (déclaration, implémentation, passage de paramètres, portée des variables…)
- Le concept de « foncteur » à travers les interfaces « fonctionnelles » et le package java.util.function
- Manipuler les collections grâce aux lambda expressions
- Code SQL: Les Listeners
Système de modules Java 9
- Notion de module
- Utilisation des modules
- Modularité dans le JDK 9
- Déploiement d’applications Java
- Rôle du linker Java : jlink
- Le fichier module-info.java
- Le format des fichiers jar avec JMOD
Migrer son code vers Java 9
- Migration sans le système de Modules
- Migration vers les Modules
- Migrer vos Librairies – tooling avec jdeps
- Compiler et lancer une application modularisée
Exécution de scripts avec JShell
- Introduction à JShell
- Exécuter et tester du code
Amélioration de l’API dédiée aux collections
- Les méthodes Factory
- Les collections non mutables
- Optimisation d’accès
Améliorations des API Stream
- Rappels rapides de l’API Steam
- TakeWhile et dropWhile
- Les méthodes iterate et ofNullable
- Nouveau : java.util.Stream, java.util.ParallelStream
- Différence entre collection et Stream
- Source, fonction intermédiaire, fonction terminale
- Fonctions intermédiaires : filter(), sort(), distinct()
- Fonctions terminales : collect(), count, foreach()
Les Streams Parralles
- Exploiter tous les processeurs & cores de votre machine
- Le framework Fork / Join
- Personnalisation : découpage avec Spliterator
- Comparaison de performance & Benchmark systématique
L’API Optional
- Rappels rapides de l’API Optional
- Méthodes :
- or()
- ifPresentOrElse()
- stream()
L’API Process
- Les interfaces ProcessHandle et ProcessHandle.inf
L’API HTTP 2
- Le protocole HTTP 2
- Le mode asynchrone
- Intégration des WebSockets
La programmation réactive
- Présentation de la programmation réactive
- Utilisation de Computable Future
- Les Reactive Streams
- Les Flow API
- Présentation de RxJava
Java 8 Nashorn
- Le moteur ECMAScript de Java 8
- Ligne de commande jjs
- Appeler du code JavaScript
- Appeler du code Java depuis du JavaScript
Concurency : Multithread (module optionnel)
- L’API Concurrent : les Executor et ses différents types
- Interfaces Runnable, Future, Callable
- Expressions Lambda et Multithread
- Nouveautés Java 8 : ComposableFuture
- Async, Timeout, Utilities
- Timeunit a Chronounit, Queue, Atomic Classes
- Orchestration de vos taches en asynchrones
- Pools de threads
- Mise en oeuvre dans une couche de Service
Langues et Lieux disponibles
Langues
- Français
- Anglais / English
Lieux
- France entière
- Paris
- Lille
- Reims
- Lyon
- Toulouse
- Bordeaux
- Montpellier
- Nice
- Sophia Antipolis
- Marseille
- Aix-en-Provence
- Nantes
- Rennes
- Strasbourg
- Grenoble
- Dijon
- Tours
- Saint-Étienne
- Toulon
- Angers
- Belgique
- Bruxelles
- Liège
- Suisse
- Genève
- Zurich
- Lausanne
- Luxembourg
Nos Formateurs Référents
Témoignages
Afficher tous les témoignages
Noter la formation
1700€
1530€HT/ personne
3 jours (21 heures)
Une question ? Un projet ?
Pour des informations complémentaires, n’hésitez pas à nous contacter.