Nous pouvons vous proposer une formation complète de 3 jours sur Java 15. Confinement oblige, nos cours seront maintenues en Classe Virtuelle uniquement. Mais, pas de panique ! Nous travaillons comme des fous pour délivrer la meilleure expérience possible ! ( le café maison en moins, diront les mauvaises langues).
L’équipe d’AMBIENT IT
EdDSA (Edwards-Curve Digital Signature Algorithm)
L’EdDSA est une méthode de cryptographie utilisant les courbes elliptiques. Cette méthodes a de nombreux avantages par rapport aux modèles de cryptographie précédents. EdDSA est seulement implémenté dans le SunEC provider, de nouvelles fonctions y sont ajoutés comme les services Signature, KeyFactory et KeyPairGenerator. La technologie EdDSA est déjà supportée pour les crypto libraries comme OpenSSL ou BoringSSL.
Records
Pour éviter la répétition de codes inutiles, Java utilise désormais les Records. Cette fonction a déjà été implémentée dans Java 14 mais nécessitait plusieurs améliorations. La grande nouveauté que propose cette version de Java est le local record, le fonctionnement de ces records ressemblent aux local classes (les records sont définis par une méthode qui permet de limiter le champs d’application à cette même méthode). Contrairement aux local classes, les local records sont toujours statiques.
Sealed classes
Les sealed class sont introduites comme fonctionnalités en preview. Cette fonction permet à l’auteur d’une classe ou d’une interface de :
- Contrôler le code responsable de sa mise en œuvre
- Fournir un moyen plus déclaratif que les modificateurs d’accès pour restreindre l’utilisation d’une superclasse
- Soutenir les directions futures en matière de pattern matching
Hidden classes
Les hidden classes sont des classes destinées à être utilisés par des frameworks générant des classes au moment de l’exécution et qui les utilisent indirectement par réflexion. Elles peuvent être définies comme membre d’un access control nest et peuvent être déchargées indépendamment des autres classes.
Avec Java 15, l’efficacité de tous les langages est améliorés en permettant à une API standard de définir des hidden classes qui ne sont pas découvrables et qui ont un cycle de vie limité. Les frameworks à l’intérieur et à l’extérieur du JDK seraient en mesure de générer dynamiquement des classes définies comme hidden. Les frameworks ont la possibilité d’en définir autant que nécessaire.
Z Garbage collector
Le Z Garbage Collector (ZGC) est une fonctionnalité intégrée depuis Java 11. L’ objectif de son intégration est de créer un récupérateur de mémoire scalable avec peu de latence. La taille maximum du tas est passée à 16 terabytes. Le ZGC peut ainsi servir pour des applications de machine learning disposant d’une importante quantité de données.
API Foreign memory access
Cette fonctionnalité permet d’accéder efficacement et en toute sécurité à la foreign memory en dehors du tas de Java. Cette API introduit trois abstractions principales : MemorySegment, MemoryAddress et MemoryLayout. L’API devrait pouvoir fonctionner sur différents types de foreign memory, tels que le tas natif, persistant et géré.
L’API permettrait d’éviter le coût et l’imprévisibilité associés à la collecte des déchets, de partager la mémoire entre les processus, de sérialiser et désérialiser le contenu de la mémoire en mappant les fichiers sur la mémoire. Avec cette mise à niveau, l’API ne devrait pas compromette la sécurité de la JVM.
Shenandoah
Cette fonctionnalité aussi appelé « low pause time garbage collector » n’est plus une fonction expérimentale. Elle permet de réduire les temps de pause du garbage collector en effectuant davantage de collecte au moment où le programme Java est en cours d’exécution. Le CMS et le G1 effectuent tous deux le marquage simultané des objets.
Text blocks
Les text blocks simplifient l’écriture des programmes Java en facilitant l’expression des strings couvrant plusieurs lignes de code source, en évitant les séquences d’échappement dans les cas courants.
Les text blocks sont des strings de plusieurs lignes qui évite la nécessité de la plupart des séquences d’échappement, formate automatiquement le string de manière prévisible et permet au développeur de contrôler le format lorsqu’il souhaite.
Les text blocks améliorent la lisibilité des strings dans les programmes Java qui désignent du code écrit dans des langages autres que Java. Ils permettent aussi de soutenir la migration à partir de strings littérals en stipulant que toute nouvelle construction exprime le même ensemble de strings qu’un string littéral, interprète les mêmes séquences d’échappement et est manipulée de la même manière qu’un string littéral.
Les développeurs d’OpenJDK espèrent ajouter des séquences d’échappement pour gérer l’espace blanc explicite et le contrôle des nouvelles lignes.
Autres améliorations
- JEP 372: Suppression du Nashorn JavaScript Engine
- JEP 374: Désactiver ou déprecier le Biased Locking
- JEP 375: Pattern Matching pour instanceof
- JEP 385: Déprecier l’Activation RMI pour la suppression
- Dépréciation des ports Solaris et SPARC
- Reimplémentation de l’API legacy DatagramSocket
- 82 nouveaux éléments API et 52 nouvelles classes et méthodes