BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Java 18 Est Maintenant Disponible

Java 18 Est Maintenant Disponible

This item in japanese

Favoris

Oracle a publié la version 18 du langage de programmation Java et de la machine virtuelle. Les neuf (9) JEP de cet ensemble de fonctionnalités final sont :

Le nombre de fonctionnalités pour Java 18 est légèrement inférieure à celui des versions précédentes comparativement à : 14 fonctionnalités en Java 17 ; 17 fonctionnalités en Java 16 ; 14 fonctionnalités en Java 15 ; et 16 fonctionnalités en Java 14.

Cette version comprend des JEP qui fournissent une contribution continue aux Projet Amber, Projet Loom et Projet Panama ainsi que de nouveaux outils utiles. Nous examinons ici quelques-unes de ces nouvelles fonctionnalités.

Projet Panamá

Les JEP 417 et JEP 419 sont sous les auspices du projet Panama, un projet conçu pour améliorer et enrichir l'interopérabilité entre la JVM et des API "étrangères" bien définies, c'est-à-dire non Java, qui incluront très probablement des interfaces couramment utilisées dans des bibliothèques C.

Outre les améliorations de performances, la JEP 417, Vector API (Third Incubator), intègre des améliorations en réponse aux commentaires des deux cycles précédents d'incubation : la JEP 414, Vector API (Second Incubator), et la JEP 338, Vector API (Incubator). La JEP 338 a été intégré en tant que module incubateur dans le JDK 16 et la JEP 414 a été défini comme l'une des dernières JEP ciblées pour le JDK 17.

La JEP 419, Foreign Function & Memory API (Second Incubator), fait évoluer le premier incubateur, la JEP 412, Foreign Function & Memory API (Incubator), livré dans le JDK 17, pour intégrer des améliorations basées sur les commentaires de la communauté Java. Les modifications apportées à ce deuxième incubateur incluent : la prise en charge de davantage de downcall methods handles telles que boolean et MemoryAddress ; une API de déréférencement plus générale pour les interfaces MemoryAddress et MemorySegment ; une API plus simple pour obtenir downcall methods handles telles que le passage d'une énumération MemoryType n'est plus nécessaire ; et une nouvelle API pour copier des tableaux Java vers et depuis des segments de mémoire.

Project Loom

La JEP 418 tombe sous les auspices de Project Loom, un projet conçu pour explorer, incuber et fournir des fonctionnalités dans la JVM et des API Java conçues dans le but de prendre en charge une concurrence légère facile à utiliser et à haut débit et de nouveaux modèles de programmation. Cela serait accompli via des threads virtuels, des continuations délimitées et des appels de queue.

La JEP 418, SPI de résolution d'adresse Internet, définit une interface de fournisseur de services pour la résolution de nom d'hôte et d'adresse, de sorte que java.net.InetAddress puisse tirer parti de résolveurs autres que le résolveur OpenJDK intégré par défaut.

Projet Amber

La JEP 420 tombe sous les auspices de Project Amber, un projet conçu pour explorer et incuber des fonctionnalités du langage Java plus petites pour améliorer la productivité.

La JEP 420, Pattern Matching for switch (Second Preview), autorise une switch expression à tester par rapport à un certain nombre de patterns, chacun avec une action spécifique, permettant d'exprimer des requêtes complexes orientées données de manière concise et sûre. Il s'agit de la seconde preview après la JEP 406, Pattern Matching for switch (Preview), qui a été fourni dans le JDK 17. Les améliorations incluent : une amélioration de la vérification de dominance qui force une étiquette constante case devant apparaître avant un motif protégé du même type ; et une vérification de l'exhaustivité du bloc de commutation qui est maintenant plus précise avec des hiérarchies scellées.

Outils Java

La JEP 413, Code Snippets in Java API Documentation, présente le tag @snippet pour le Standard Doclet d'Oracle, l'utilitaire bien connu de documentation de l'API Java qui produit la sortie au format HTML par défaut. L'intention est de simplifier l'inclusion d'exemples de code source dans la documentation des API. Les extraits de code peuvent être intégrés ou externes, comme le montrent les deux exemples suivants :

Dans cet exemple en ligne, le code source est ajouté aux commentaires précédés de la balise @snippet et entouré d'accolades :

    
/**
 * The following code shows how to use {@code Optional.isPresent}:
 * {@snippet :
 * if (v.isPresent()) {
 *     System.out.println("v: " + v.get());
 *     }
 * }
 */
    

Dans cet exemple externe, un fichier source existant, ShowOptional.java, contient les balises @start et @end. Une région définie, c'est-à-dire region="example" est référencée dans les commentaires et dans le fichier source :

    
/**
 * The following code shows how to use {@code Optional.isPresent}:
 * {@snippet file="ShowOptional.java" region="example"}
 */

public class ShowOptional {
    void show(Optional<String> v) {
        // @start region="example"
        if (v.isPresent()) {
            System.out.println("v: " + v.get());
            }
        // @end
        }
    }
    

La JEP 408, Simple Web Server, fournit un serveur Web en ligne de commande HTTP minimal qui ne sert que des fichiers statiques. Cet utilitaire est conçu pour être utile pour le prototypage, le codage ad hoc et les tests, en particulier dans un environnement éducatif. Le serveur peut être démarré comme suit :

    
java -m jdk.httpserver [-b bind address] [-p port] [-d directory] [-h to show help message] [-o none|default|verbose]
    

Java 19

Actuellement, un seule JEP est Targeted ou Integrated pour être incluse dans Java 19 :

La date de sortie officielle de Java 19 n'a pas encore été annoncée, mais elle devrait être livrée à la mi-septembre 2022 conformément à la cadence de publication de six mois. Les développeurs peuvent anticiper un gel des fonctionnalités à la mi-juin 2022.

Java 18 peut maintenant être téléchargé chez Oracle avec des binaires d'autres fournisseurs qui devraient être disponibles dans les prochains jours.

 

Au sujet de l’Auteur

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

BT