Formation ’nouveautés Java 8 et 9’ : Modules, Lambdas , Streams , Optional

JPG - 15.4 ko

Conçue par Douglas MBIANDOU, cette formation vous permettra d’appréhender par la pratique les nouveautés des version 8 et 9 de Java, avec un focus sur les technologies caractéristiques de java 8 (expressions lambdas , Streams, Optional) et la nouvelle approche de la modularité spécifique à java 9 .

Notre + : les notions sont mises en oeuvre dans le contexte d’une application Java SE ou Java EE en couche : présentation + domaine + Service + Dao mettant en oeuvre les fraeworks Spring et Hibernate.

Objectifs pédagogiques

- Utiliser le nouveau système de Modules Java 9
- Migrer de votre code vers Java 9
- Utiliser les expressions lambda
- Utiliser les Streams et les ParallelStreams
- Utiliser les Streams avec les Expressions Lambdas
- Utiliser les opérateurs -> (lambda) et :: (référence de méthode)
- Exploiter les possibilités de la programmation fonctionnelle
- Connaître la nouvelle API de gestion des dates et du temps
- Communiquer avec du code Javascript
- Travailler avec le Optional pour limiter NullPointerException

Travaux pratiques (70%)

Des exercices et travaux pratiques permettront de mettre en oeuvre les concepts abordés.

Participants

Concepteurs, développeurs, responsables de projets Java.

Prérequis

Pratique du développement Java, connaissance de Java 5, 6 ou 7

Durée

- 4 jours

Dates 2018

- 13-16 février (Paris)
- 20-23 février (Lyon)
- 6-9 mars (Abidjan)
- 27-30 mars (Paris)
- 10-13 avril (Dakar)
- 5-8 juin (Paris)
- 12-15 juin (Lyon)
- 26-29 juin (Douala)
- 16-19 oct (Paris)
- 23-26 oct (Lyon)
- 20-23 nov (Casa)

Tarifs

- 1990 HT par personne

- Pour les formation ’intra’ (dans votre entreprise) , nous contacter.

PROGRAMME DETAILLE FORMATION

Synthèse des nouveautés de Java 8 et 9

- Encapsulation de packages Java 9 : les Modules
- Migration de votre code vers Java 9
- Les expressions lambda.
- Méthodes par défaut des interfaces
- Comprendre les interfaces fonctionnelles
- Manipuler des collection avec les streams.
- La nouvelle API de gestion des dates et des heures.
- La possibilité d’exécuter du code JavaScript avec Java 8 Nashorn.

Introduction Système de Module Java 9

- L’importance des Modules
- Modularité du JDK 9
- Chantier historique : compact1 à 4
- Travailler avec des modules
- Les services Java 9
- Bonnes pratiques (Patterns)
- fichier module.info

Migration vers Java 9

- Migration sans le système de Modules
- Migration vers les Modules
- Migrer vos applications Spring / Hibernate
- Migrez vos Libraries
- Outil : jdeps

Les expressions lambda

- Améliorer la concision, lisibilité du code
- Classe anonyme imbriquée
- L’opérateur Lambda ->
- Interface fonctionnelle
- Manipuler des collections
- API java.util.function.
- Mise en oeuvre dans une couche Service et Dao

Les Streams

- Nouveau : java.util.Stream, java.util.ParallelStream
- Créer un Stream à partir d’une collection Java
- Différence entre collection et Stream
- Source, fonction intermédiaire, fonction terminale
- fonction intermédiaires : filter(), sort(), distinct()
- fonctions terminales : collect(), count, foreach()
- Mise en oeuvre dans une couche Dao

Les Streams Parralles

- Exploiter tous les processeurs de votre machine
- Rappel sur le framework Fork/join
- Personnaliser le découpage avec Spliterator
- Comparaison de performance
- recommandation : Benchmark systématique !
- Mise en oeuvre dans une couche Service

Le conteneur ’Optional’

- Marre des NullPointerException !
- Du code plus propre, plus lisible , plus maintenable
- of : Créer un Optional à partir d’un objet existant non null
- ofNullable : Créer un Optional à partir d’un objet existant potentiellement null
- Récupérer le contenu : get(), map()...
- Refactoring de code
- Mise en oeuvre dans une couche Dao

Intégration Java / Javascript

- Nashorm, le moteur ECMAScript-262 de Java 8.
- Appeler une méthode Javascript à partir de Java
- La méthode eval() du moteur
- Appeler un script Javascript (.js) externe
- Utilisation de la ligne de commande jjs.
- Appeler du code Java depuis un script JavaScript.
- Mise en oeuvre dans une couche Service

Nouvelle API Date et Time

- Le problème de GregorianCalendar,
- L’alternative JodaTime
- La JSR 310.
- java.time.Instant et java.time.Duration.
- java.time.LocalDate, java.time.LocalTime, java.time.LocalDateTime.
- Mise en oeuvre dans une couche Service

Multithread

- L’API Concurrent : les Executor
- Les différents types d’Executor
- Interfaces Runnable, Future, Callable
- Expressions Lambda et Multithread
- Nouveautés Java 8 : ComposableFuture
- Orchestrer vos taches asynchrones !
- Pools de threads
- Mise en oeuvre dans une couche Service