Ajouter un commentaire

Java 23 est disponible

Par:
francoistonic

mer, 18/09/2024 - 07:43

Oracle annonce la disponibilité de Java 23. Cette version inclut 12 JEP :

455:Primitive Types in Patterns, instanceof, and switch (Preview)

466:Class-File API (Second Preview)

467:Markdown Documentation Comments

469:Vector API (Eighth Incubator)

473:Stream Gatherers (Second Preview)

471:Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal

474:ZGC: Generational Mode by Default

476:Module Import Declarations (Preview)

477:Implicitly Declared Classes and Instance Main Methods (Third Preview)

480:Structured Concurrency (Third Preview)

481:Scoped Values (Third Preview)

482:Flexible Constructor Bodies (Second Preview)

En réalité, Java 23 inclut 9 JEP en préversion ou en incubation. Seules 3 JEP sont rééllement disponibles pour la production : Markdown pour les commentaires dans la documentation, la dépréciation des méthodes Memory-Access et une évolution du ZGC. 
La JEP 467 concerne donc la documentation et comment bien formater les commentaires JavaDoc. Jusqu'à présent, on utilisait le HTML, désormais, on utilise directement Markdown.
Exemple : 
/**
 * Returns a hash code value for the object. This method is
 * supported for the benefit of hash tables such as those provided by
 * {@link java.util.HashMap}.
 * <p>
 * The general contract of {@code hashCode} is:
 * <ul>
 * <li>Whenever it is invoked on the same object more than once during
 *     an execution of a Java application, the {@code hashCode} method
 *     must consistently return the same integer, provided no information
 *     used in {@code equals} comparisons on the object is modified.
 *     This integer need not remain consistent from one execution of an
 *     application to another execution of the same application.
-> commentaire en HTML. Ci-dessous : le même en Markdown :
/// Returns a hash code value for the object. This method is
/// supported for the benefit of hash tables such as those provided by
/// [java.util.HashMap].
///
/// The general contract of `hashCode` is:
///
///   - Whenever it is invoked on the same object more than once during
///     an execution of a Java application, the `hashCode` method
///     must consistently return the same integer, provided no information
///     used in `equals` comparisons on the object is modified.
///     This integer need not remain consistent from one execution of an
///     application to another execution of the same application.
///   - If two objects are equal according to the
///     [equals][#equals(Object)] method, then calling the
///     `hashCode` method on each of the two objects must produce the
///     same integer result.
Dans les JEP en développement, la JEP476 doit aider les développeurs dans les imports des packages par un module. Dixit Oracle, cette future fonctionnalité va permettre une meilleure réutilisation des librairies même sans connaître la hiérarchie entre les différents paquets. Et le code s'en trouvera simplifier.
La gestion des classes ayant un nom identique sera améliorée, il faudra indiquer (dans le code) quelle classe est choisie lors de l'import.
Les équipes continuent à travailler sur les types primitifs avec la JEP 455. Elle doit permettre d'utiliser instanceof et switch sur les types 
primitifs ce qui n'étaient pas possible avant. Autre JEP à surveiller : la 480 sur la concurrence structurée. Cette approche de la programmation concurrente permet de découper les tâches / threads en sous-tâches pour mieux la paralléliser. Autre JEP à surveiller : la 469 concernant les API vecteurs. Cela permettra à terme de mieux utiliser les capacités des instructions CPU. 
Oracle reste le principal contributeur de Java. Même si le langage ne parait pas évoluer beaucoup, les différentes JEP en préversion dessinent le futur de Java : plus modulaire et vers une nouvelle simplification du code. Oracle promet aussi de nettes améliorations des performances Java en exécution sur un Cloud, par exemple sur celui de l'éditeur. Java 23 est supporté dès maintenant sur ce cloud. 
D'autre part, Oracle annonce que le compilateur GraalVM JIT est maintenant intégré avec les autres JIT de la JDK et donc de Java 23. Une bonne nouvelle. 
Autre annonce, Oracle promet le retour de la grande conférence JavaOne pour 2025 !

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 Y   Y  PPPP   EEEE  III  BBBB  
Y Y P P E I B B
Y PPPP EEE I BBBB
Y P E I B B
Y P EEEE III BBBB