Synthèse des nouveautés de Java 8
- Vue d'ensemble des ajouts : 195 nouvelles entités (classes, interfaces...).
- Les expressions lambda.
- Ecrire du code SQL dans un code Java 8.
- Les implémentations par défaut des interfaces et @FunctionalInterface, les nouvelles annotations.
- Les évolutions des streams.
- La nouvelle API de gestion des dates et des heures.
- Les évolutions d'API de java.lang, java.util, java.net...
- La possibilité d'exécuter du code JavaScript avec Java 8 Nashorn.
Travaux pratiques
Vérification de l'installation du JDK 8 (outils, javadoc...).
Les expressions lambda
- Notion de classe anonyme imbriquée, améliorations apportées par le concept d'expression lambda.
- Les aspects syntaxiques (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.
- Utiliser les lambda-expressions pour manipuler les collections.
- Apports dans l'écriture de code SQL Les Listeners...
Travaux pratiques
Découverte des lambda-expressions.
La programmation fonctionnelle avancée
- L'usage de @FunctionalInterface.
- Les interfaces fonctionnelles fournies par le JDK 8.
- Predicate, Function, Supplier, Consuler...
- Références aux méthodes et aux constructeurs.
Travaux pratiques
Mise en œuvre d'aspects avancés.
Java 8 Nashorn
- Du JavaScript au sein de Java ? De Rhino présent en Java 7 à Oracle Nashorn, moteur ECMAScript-262 de Java 8.
- Utilisation de la ligne de commande jjs.
- Appeler du code JavaScript depuis une application Java, soit directement soit à l'aide d'un fichier séparé .js.
- Appeler du code Java depuis un script JavaScript.
Travaux pratiques
Appels de JavaScript depuis Java.
Nouvelle API Date et Time
- Les difficultés engendrées par les API de Date et GregorianCalendar, l'alternative JodaTime et la JSR 310.
- Les concepts de temps machine et temps humain, les principes de base de la nouvelle API.
- La gestion du temps machine avec java.time.Instant et java.time.Duration.
- Le temps humain avec java.time.LocalDate, java.time.LocalTime, java.time.LocalDateTime.
Travaux pratiques
Utilisation de la nouvelle API de gestion des dates et temps.
Autres nouveautés
- Les nouveaux streams.
- Map-reduce.
Travaux pratiques
Mise en œuvre des nouveautés.