- 2012 : Java 7
NIO2 Path, Files, Glob, WatchService, DirectoryStream, walkFileTree
le projet Coins : try with resources, exceptions multiples dans catch, operateur diamant, String dans switch, underscore dans les littéraux
- 2014 : Java 8
les expressions Lambda et les références de méthode
approche fonctionnelle du traitement de données avec l'api stream
api Date $ Time
les méthodes par défaut et static dans les interfacesles classes optional
les annotations répétées
- 2017 : Java 9
@SafeVarags
l’opérateur diamant sur les classes anaonymes
try with resources : utilisation directe de variables explicitement final
Jshell : outil de type REPL
API Process : interface ProcessHandle
Fabriques statiques pour collections immuables
VarHandle : opérations atomiques/ordonnées via une réf typée à une variable
Stackwalking API
Flow API (Reactive Streams)
Les modules (la mise en oeuvre implique des contraintes ruptures visibilité, accessibilité, organisation du code) mais la modulisation n'est pas obligatoire. Vous pouvez personnaliser le JRE via l'outil jlink.
- 2018 Mars: Java 10
Faciliter la définition des variables et nouvelles opportunités avec les classes anonymes
Type inféré est parfois surprenant comme var liste = List.of("test",1);
- 2018 Septembre: Java 11 (LTS)
Support HTTP1.1 et 1.2, websockets, synchrone et asynchrone
JDK flight recorder
exécution directe d'un unique fichier java par la jvm sans compilation préalable