Java 9 - Présentation

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 Java 9 sont -

  • Rendre la plate-forme JDK et Java Standard Edition modulaire dans le sens où elle peut être réduite à de petits appareils informatiques.

  • Pour améliorer la sécurité globale des implémentations JDK et Java.

  • Faciliter le processus de construction et la maintenance des bibliothèques de code java et des grandes applications pour les plates-formes JAVA SE et EE.

  • Concevoir et implémenter un système de modules standard pour la plate-forme Java qui peut être facilement appliqué à la fois sur la plate-forme et sur JDK.

Nouvelles fonctionnalités

Plus de 90 améliorations ont été 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) - Fonction Read-Eval-Print Loop (REPL) ajoutée à la plate-forme Java.

  • HTTP 2 Client - nouvelle API HTTPClient prenant en charge les websockets et les flux HTTP 2 et les fonctionnalités de poussée du serveur.

  • Improved JavaDocs- Prend en charge la génération de sortie HTML5. Fournit une zone de recherche pour la documentation API générée.

  • Multirelease JAR - Améliore le format JAR afin que plusieurs versions de fichiers de classe spécifiques à la version Java puissent coexister dans une même archive.

  • Collection Factory Methods - Nouvelles méthodes de fabrique statique pour les interfaces List, Set et Map pour créer des instances immuables de ces collections.

  • Private Interface Methods - Interfaces améliorées avec des méthodes statiques privées et privées.

  • Process API Improvements - API améliorée pour contrôler et gérer les processus du système d'exploitation.

  • Stream API Improvements - Sécurité et robustesse améliorées en permettant le filtrage des flux entrants de données de sérialisation d'objets.

  • Try With Resources improvement - Les variables finales peuvent maintenant être utilisées comme ressources dans l'instruction try-with-resources.

  • Enhanced @Deprecated Annotation - Annotation @Deprecated remaniée pour fournir plus d'informations sur l'état et la disposition prévue d'une API.

  • Inner Class Diamond Operator - Permettre à l'opérateur losange d'être utilisé avec des classes anonymes si le type d'argument du type inféré peut être indiqué.

  • Optional Class Improvements - 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.

  • CompletableFuture API improvements - 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.

  • Reactive Streams API - Une nouvelle API Reactive Streams dans Java SE 9 a été introduite pour prendre en charge la programmation réactive dans java 9.