Java 10 : Principales fonctionnalités et modèle de publication expliqués
Java 10 est une version majeure dans le nouveau rythme de publication de Java, sortie le 20 mars 2018. Oracle a introduit un nouveau modèle : une version majeure tous les 6 mois et un modèle LTS (Long Term Support) pour Oracle Java SE.
Nouveau rythme de publication
Depuis Java 10, Oracle publie une nouvelle version tous les 6 mois. Chaque version contient une ou deux fonctionnalités majeures. Oracle utilise le concept de release train : chaque train est planifié sur 6 mois. Les fonctionnalités prêtes à temps sont incluses ; les autres sont reportées au train suivant.
Oracle JDK vs OpenJDK
- Oracle JDK : binaires propriétaires, licence restrictive, redistribution limitée.
- OpenJDK : open source, favorable à la communauté. Depuis Java 10, Oracle promeut OpenJDK comme JDK principal pour le développement communautaire.
Oracle continuera de produire ses propres JDK mais les publiera tous les 3 ans en tant que versions LTS. Les binaires OpenJDK sortent tous les 6 mois.
OpenJDK est cloud- et container-friendly (redistribuable librement dans les conteneurs), ce qui rend Java plus adapté au cloud et aux conteneurs.
Java 9 et 10 : versions non-LTS. Java 11 : première version LTS du nouveau cycle.
Nouvelles fonctionnalités majeures (JEPs)
- JEP 286 : Inférence de type pour variables locales (
var) - JEP 322 : Versionnage basé sur le temps
- JEP 304 : Interface du ramasse-miettes (GC Interface)
- JEP 307 : Full GC parallèle pour G1
- JEP 316 : Allocation du tas sur périphériques mémoire alternatifs
- JEP 296 : Consolidation du forest JDK en un dépôt unique
- JEP 310 : Partage des données de classe d'application (AppCDS)
- JEP 314 : Extensions de balises de langue Unicode supplémentaires
- JEP 319 : Certificats racine
- JEP 317 : Compilateur JIT expérimental basé sur Java (Graal)
- JEP 312 : Handshakes thread-local
- JEP 313 : Suppression de l'outil de génération d'en-têtes natifs (
javah)
Java 10 a également amélioré plus de 70 API avec de nouvelles méthodes/options et supprimé des API/options dépréciées. Ces changements sont détaillés dans les articles suivants.
Java
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Commentaires Java : Types, utilisation et bonnes pratiques
- Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
- Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Assertions Java : guide pratique pour détecter les bugs et assurer la fiabilité du code