JAVA 8 a introduit les notions de programmation fonctionnelle avec les lambdas, et le framework map/reduce pipeline et stream dans le jargon Java.
#Java 9,10,11,… (tous les 6 mpis une nouvelle version…)
JAVA 9 (alias jdk 1.9) est une version majeure du développement du langage de programmation JAVA. Sa version initiale a été publiée le 21 septembre 2017. Les principaux objectifs de la version de Java 9 sont les suivants:
- Faire en sorte que la plate-forme JDK et Java Standard Edition soit modulaire dans le sens où elle peut être parfaitement adaptée aux petits ordinateurs.
- Améliorer la sécurité globale des implémentations JDK et Java.
- Faciliter le processus de création et la maintenance des bibliothèques de codes Java et des applications volumineuses pour les plates-formes JAVA SE et EE.
- Concevoir et implémenter un système de module standard pour la plate-forme Java qui peut être appliqué facilement sur Platform et JDK.
Nouvelles fonctionnalités
Il y a plus de 90 améliorations ajoutées à Java 8, les plus importantes sont mentionnées ci-dessous
- Module - Un nouveau type de composant de programmation Java introduit en tant que module, qui est une collection nommée et auto-descriptive de code et de données.
- REPL (JShell) - Ajout de la fonction REPL (Read-Eval-Print Loop) à la plate-forme Java.
- Client HTTP 2 - nouvelle API HTTPClient prenant en charge les flux Web et les flux HTTP 2 et les fonctionnalités Push du serveur.
- JavaDocs améliorés - Prend en charge la génération de sortie HTML5. Fournit un champ de recherche pour la documentation de l’API générée.
- JAR Multirelease - Améliore le format JAR afin que plusieurs versions de fichiers de classes spécifiques à Java puissent coexister dans une seule archive.
- Méthodes de fabrique de collections - Nouvelles méthodes de fabriques statiques pour les interfaces List, Set et Map afin de créer des instances immuables de ces collections.
- Méthodes d’interface privées - Interfaces améliorées avec des méthodes statiques privées et privées.
- Améliorations de l’API de processus - Amélioration de l’API pour contrôler et gérer les processus du système d’exploitation.
- Améliorations de l’API de flux: sécurité et robustesse accrues en permettant de filtrer les flux entrants de données de sérialisation d’objet.
- Amélioration des ressources - Les variables finales peuvent désormais être utilisées comme ressources dans l’instruction try-with-resources.
- Enhanced @Deprecated Annotation - Annotation @Deprecated améliorée pour fournir plus d’informations sur l’état et la disposition prévue d’une API.
- Opérateur de diamant de classe interne - Permet à l’opérateur de diamant d’être utilisé avec des classes anonymes si le type d’argument du type inféré peut être indiqué.
- Améliorations de classe facultatives - De nouvelles méthodes utiles sont ajoutées à la classe java.util.Optional.
- Multiresolution Image API - Prend en charge l’encapsulation d’un ensemble d’images avec différentes résolutions dans une seule image multirésolution.
- Améliorations de l’API CompletableFuture - Les mécanismes asynchrones de la classe CompletableFuture peuvent effectuer une action lorsque le processus se termine avec la méthode ProcessHandle.onExit.
- Lightweight JSON - Une API légère introduite pour consommer et générer des documents et des flux de données via json dans java 9.
- API de flux réactifs - Une nouvelle API de flux réactifs dans Java SE 9 a été introduite pour prendre en charge la programmation réactive dans Java 9.