5. • Langage :
• Méthodes par défaut et statiques dans les interfaces
• Références de méthode
• Expressions lambda
• Annotations de type
• API
• Date and time API
• Interfaces fonctionnelles
• Stream API
• Améliorations dans la gestion de concurrence
• Nashorn , un nouveau moteur JavaScript
• Unicode 6.2, JDBC 4.2, JAXP 1.6, etc.
• Base 64 encoder et decoder
Vue d’ensemble
9. • Exemples de fonctions dans java.util.function :
Interfaces fonctionnelles (2/3)
Interface Entrées Sortie
Consumer<T> T
Supplier<T> T
Predicate<T> T boolean
Function<T, R> T R
IntFunction<R> int R
BiFunction<T, U, R> T, U R
18. • Définition :
• Utilisation :
• Cas d’usages :
• Lisibilité du code
• Supporté par la Reflection API, e.g.: field.getAnnotatedType()
• Exploitable via Java Annotation Processor comme Checker Framework
Annotation de types
23. • Execution dans le ForkJoinPool commun
• Parallélisme du ForkJoinPool commun :
• Property -Djava.util.concurrent.ForkJoinPool.common.parallelism=7
• Sinon Runtime.getRuntime().availableProcessors() - 1
• Le thread courant aussi est utilisé
• Ou dans un ForkJoinPool custom
Parallel streams (1/2)
24. • Pas toujours plus performant, varie suivant :
• Type de collection : ArrayList plutôt que LinkedList
• Nature du traitement
• Taille de "N*Q" (nb d'élément * cout par élément)
• Nombre de cœurs, il faut > 1
• Mesurer les deux
• Par défaut utilisent tous le ForkJoinPool commun
• Attention aux lambdas stateful
Parallel streams (2/2)
25. • Classe qui implémente Future
• Pour combiner/chainer des actions
CompletableFuture
28. • Projet « Jigsaw »
• Identification explicite des dépendances
• Séparation des composants publics vs privés
• Réduction de la taille de du JDK pour certains systèmes
• Modularisation du JDK en 85 modules
Java Platform Module System
29. • HttpClient : client HTTP/2 sync ou async
• Collections :
• Processus :
API (1/2)
33. • Doc « cherchable » :
• Garbage collector :
• « G1 » par défaut
• Changements dans les flags mémoire
• Nouveau format de log
• Support Unicode 7.0 et 8.0
• Nouveau renderer 2D, Marlin
• Amélioration du stockage des String
• Nouvelle structure des fichiers de JDK/JRE
• Etc…
Divers