IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le JDK 22 apporte 12 améliorations : améliorations du langage Java, de ses API, de ses performances et des outils inclus dans le JDK

Le , par Jade Emy

204PARTAGES

7  0 
Oracle annonce la disponibilité générale du JDK 22 pour les développeurs, les entreprises et les utilisateurs finaux. Le JDK 22 apporte 12 améliorations importantes.

Le JDK 22 apporte 12 améliorations suffisamment importantes pour justifier leur propre proposition d'amélioration du JDK (JEP), dont sept fonctionnalités de prévisualisation et une fonctionnalité d'incubation. Ces améliorations concernent le langage Java, ses API, ses performances et les outils inclus dans le JDK.


1. Améliorations du langage

Variables sans nom et modèles - JEP 456

Améliore la lisibilité lorsque des déclarations de variables ou des motifs imbriqués sont nécessaires mais non utilisés. Les deux sont désignés par le caractère de soulignement.

Valeur :
  • Capture l'intention du développeur selon laquelle un paramètre lambda ou de liaison donné est inutilisé, et applique cette propriété pour clarifier les programmes et réduire les possibilités d'erreur.
  • Améliore la maintenabilité de l'ensemble du code en identifiant les variables qui doivent être déclarées (par exemple, dans les clauses catch) mais qui ne sont pas utilisées.
  • Permet à plusieurs modèles d'apparaître dans une seule étiquette de cas, si aucun d'entre eux ne déclare de variables de modèle.
  • Améliore la lisibilité des modèles d'enregistrement en éliminant les modèles de type imbriqués inutiles.


Aperçus du langage

Déclarations avant super (...) [Aperçu] - JEP 447 :

Dans les constructeurs, permettre aux déclarations qui ne font pas référence à l'instance créée d'apparaître avant l'invocation explicite du constructeur.

Valeur :
  • Donne aux développeurs une plus grande liberté pour exprimer le comportement des constructeurs, permettant le placement plus naturel de la logique qui doit actuellement être prise en compte dans les méthodes statiques auxiliaires, les constructeurs intermédiaires auxiliaires ou les arguments des constructeurs.
  • Préserve la garantie existante que les constructeurs s'exécutent dans l'ordre descendant lors de l'instanciation de la classe, garantissant que le code dans un constructeur de sous-classe ne peut pas interférer avec l'instanciation de la superclasse.
  • Ne nécessite aucune modification de la machine virtuelle Java. Cette fonctionnalité du langage Java repose uniquement sur la capacité actuelle de la JVM à vérifier et à exécuter le code qui apparaît avant les invocations explicites de constructeurs à l'intérieur des constructeurs.


Modèles de chaînes de caractères (deuxième aperçu) - JEP 459 :

Les modèles de chaînes de caractères complètent les chaînes littérales et les blocs de texte existants de Java en couplant le texte littéral avec des expressions intégrées et des processeurs de modèles pour produire des résultats spécialisés.

Valeur :
  • Simplifie l'écriture des programmes Java en facilitant l'expression des chaînes de caractères qui incluent des valeurs calculées au moment de l'exécution.
  • Améliore la lisibilité des expressions qui mélangent texte et expressions, que le texte tienne sur une seule ligne de source (comme avec les chaînes littérales) ou qu'il s'étende sur plusieurs lignes de source (comme avec les blocs de texte).
  • Améliore la sécurité des programmes Java qui composent des chaînes à partir de valeurs fournies par l'utilisateur et les transmettent à d'autres systèmes (par exemple, en construisant des requêtes pour des bases de données) en prenant en charge la validation et la transformation à la fois du modèle et des valeurs de ses expressions intégrées.
  • Conserve la flexibilité en permettant aux bibliothèques Java de définir la syntaxe de formatage utilisée dans les modèles de chaînes de caractères.
  • Simplifie l'utilisation des API qui acceptent les chaînes écrites dans des langages autres que Java (par exemple, SQL, XML et JSON).
  • Permet la création de valeurs autres que des chaînes, calculées à partir de texte littéral et d'expressions intégrées, sans avoir à passer par une représentation intermédiaire sous forme de chaîne.


Classes déclarées implicitement et méthodes principales d'instance (deuxième aperçu) - JEP 463 :

Les étudiants peuvent écrire leurs premiers programmes Java sans avoir besoin de comprendre les caractéristiques du langage conçues pour les programmes de grande taille. Au lieu d'utiliser un dialecte distinct du langage, les étudiants peuvent écrire des déclarations simplifiées pour des programmes à classe unique, puis étendre leurs programmes de manière transparente pour utiliser des fonctionnalités plus avancées au fur et à mesure que leurs compétences augmentent.

Valeur : Accélérer l'apprentissage de Java -
  • Offre une rampe d'accès en douceur à la programmation Java afin que les formateurs puissent introduire les concepts de manière graduelle.
  • Aide les étudiants à écrire des programmes de base de manière concise et à faire évoluer leur code au fur et à mesure que leurs compétences s'accroissent.
  • Réduit la cérémonie d'écriture de programmes simples tels que les scripts et les utilitaires de ligne de commande.
  • N'introduit pas de dialecte séparé du langage Java pour les débutants.
  • N'introduit pas de chaîne d'outils distincte pour les débutants ; les programmes des étudiants devraient être compilés et exécutés avec les mêmes outils que ceux qui compilent et exécutent n'importe quel programme Java.


2. Bibliothèques

Fonction étrangère et API de mémoire - JEP 454 :

Permet aux programmes Java d'interagir avec le code et les données en dehors du temps d'exécution Java. En invoquant efficacement des fonctions étrangères (c'est-à-dire du code extérieur à la JVM) et en accédant en toute sécurité à la mémoire étrangère (c'est-à-dire la mémoire non gérée par la JVM), l'API permet aux programmes Java d'appeler des bibliothèques natives et de traiter des données natives sans la fragilité et le danger de la JNI.

Valeur :
  • Productivité - Remplacer la machinerie fragile des méthodes natives et de l'interface Java Native (JNI) par une API concise, lisible et purement Java.
  • Performance - Fournir un accès aux fonctions étrangères et à la mémoire avec un surcoût comparable, voire supérieur, à celui de JNI et de sun.misc.Unsafe.
  • Prise en charge d'un grand nombre de plateformes - Permettre la découverte et l'invocation de bibliothèques natives sur toutes les plateformes sur lesquelles la JVM s'exécute.
  • Uniformité - Fournir des moyens d'opérer sur des données structurées et non structurées, de taille illimitée, dans plusieurs types de mémoire (par exemple, la mémoire native, la mémoire persistante et la mémoire de tas gérée).
  • Sûreté - Garantir l'absence de bogues "use-after-free", même lorsque la mémoire est allouée et désallouée par plusieurs threads.
  • Intégrité - Permettre aux programmes d'effectuer des opérations dangereuses avec du code et des données natifs, mais avertir les utilisateurs de ces opérations par défaut.


Aperçu des bibliothèques et incubateur

API de fichier de classe (aperçu) - JEP 457 :

Fournit une API standard pour l'analyse, la génération et la transformation des fichiers de classe Java.

Valeur :
  • L'API permet aux cadres et aux programmes qui en dépendent de prendre automatiquement en charge les derniers fichiers de classe du dernier JDK, de sorte que les nouvelles fonctionnalités du langage et de la VM représentées dans les fichiers de classe puissent être adoptées rapidement et facilement.


Collecteurs de flux (aperçu) - JEP 461 :

Améliore l'API Stream pour...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de moueza
Membre régulier https://www.developpez.com
Le 20/03/2024 à 21:15
Toujours aussi dynamique ce Java ! Il ne se repose pas sur ses lauriers.
4  0