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

76PARTAGES

7  0 
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.

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 prendre en charge les op�rations interm�diaires personnalis�es. Cela permettra aux pipelines de flux de transformer les donn�es d'une mani�re qui n'est pas facilement r�alisable avec les op�rations interm�diaires int�gr�es existantes.

Valeur :
  • Am�liore la productivit� des d�veloppeurs et la lisibilit� du code en rendant les op�rations personnalis�es courantes dans les flux plus souples et plus expressives. Dans la mesure du possible, permet aux op�rations interm�diaires de manipuler des flux de taille infinie.


Concurrence structur�e (2e aper�u) - JEP 462 :

Simplifie la programmation concurrente. La concurrence structur�e traite les groupes de t�ches connexes ex�cut�es dans diff�rents threads comme une seule unit� de travail, ce qui permet de rationaliser la gestion et l'annulation des erreurs, d'am�liorer la fiabilit� et d'accro�tre l'observabilit�.

Valeur :
  • Simplifie le d�veloppement de code concurrent en promouvant un style de programmation qui peut �liminer les risques courants li�s � l'annulation et � l'arr�t, tels que les fuites de threads et les retards d'annulation, et am�liore l'observabilit� du code concurrent.


Valeurs cadr�es (2e aper�u) - JEP 464 :

Permet un partage efficace des donn�es immuables � l'int�rieur et entre les threads.

Valeur :
  • Facilit� d'utilisation - Fournit un mod�le de programmation pour partager des donn�es � l'int�rieur d'un thread et avec les threads enfants, afin de simplifier le raisonnement sur le flux de donn�es.
  • Compr�hensibilit� - Rend la dur�e de vie des donn�es partag�es visible � partir de la structure syntaxique du code.
  • Robustesse - garantit que les donn�es partag�es par un appelant ne peuvent �tre r�cup�r�es que par les appelants l�gitimes.
  • Performance - Traite les donn�es partag�es comme immuables pour permettre leur partage par un grand nombre de threads et pour permettre des optimisations en cours d'ex�cution.


API vectorielle (7e incubateur) - JEP 460 :

Une API pour exprimer des calculs vectoriels qui se compilent de mani�re fiable lors de l'ex�cution en instructions vectorielles optimales sur les architectures d'unit�s centrales prises en charge, ce qui permet d'obtenir des performances sup�rieures � celles des calculs scalaires �quivalents.

Ce JEP propose de r�incuber l'API dans le JDK 22, avec des am�liorations mineures de l'API par rapport au JDK 21. La mise en �uvre comprend des corrections de bogues et des am�liorations de performance. Oracle inclue les changements notables suivants :
  • Prise en charge de l'acc�s vectoriel avec les segments de m�moire du tas qui sont soutenus par un tableau de n'importe quel type d'�l�ment primitif. Auparavant, l'acc�s �tait limit� aux segments de m�moire du tas soutenus par un tableau d'octets.


Valeur :
  • Offre une API claire et concise capable d'exprimer de mani�re claire et concise une large gamme de calculs vectoriels consistant en des s�quences d'op�rations vectorielles compos�es au sein de boucles, et �ventuellement avec un flux de contr�le.
  • L'API est con�ue pour �tre ind�pendante de l'architecture du processeur, ce qui permet des impl�mentations sur de multiples architectures supportant les instructions vectorielles.
  • Offre une compilation et des performances d'ex�cution fiables sur les architectures x64 et AArch64.
  • S'aligne sur le projet Valhalla.


3. Performance

Brochage r�gional pour G1 - JEP 423 :

R�duit la latence en mettant en �uvre le pinning r�gional dans G1, de sorte que le garbage collection n'a pas besoin d'�tre d�sactiv� pendant les r�gions critiques de l'interface Java Native (JNI).

Valeur :
  • Am�liore la productivit� des d�veloppeurs en �liminant la n�cessit� pour les threads Java d'attendre la fin de l'op�ration G1 GC lors de l'utilisation de JNI.


4. Outils

Lancement de programmes � code source multi-fichiers - JEP 458 :

Permet aux utilisateurs d'ex�cuter un programme fourni sous la forme de plusieurs fichiers de code source Java sans avoir � le compiler au pr�alable.

Valeur :
  • Am�liore la productivit� des d�veloppeurs en rendant plus graduelle la transition entre les petits programmes et les programmes plus importants, ce qui permet aux d�veloppeurs de choisir si et quand ils doivent se donner la peine de configurer un outil de construction.



Il convient de noter que les fonctionnalit�s de pr�visualisation sont des fonctionnalit�s de langage ou de VM de la plate-forme Java SE enti�rement sp�cifi�es et enti�rement mises en �uvre, mais qu'elles sont impermanentes. Elles sont mises � disposition dans les versions de fonctionnalit�s du JDK pour permettre aux d�veloppeurs de faire part de leurs commentaires sur la base d'utilisations r�elles, avant qu'elles ne deviennent permanentes dans une prochaine version. Cela permet �galement aux fournisseurs d'outils de travailler � la prise en charge des fonctionnalit�s avant qu'elles ne soient finalis�es dans la norme Java SE.

Les API des modules incubateur mettent des API et des outils non d�finitifs entre les mains des d�veloppeurs et des utilisateurs afin de recueillir des commentaires qui, en fin de compte, am�lioreront la qualit� de la plate-forme Java.

Outre les changements d�crits dans les JEP, les notes de mise � jour contiennent de nombreuses petites mises � jour qui int�resseront de nombreux d�veloppeurs d'applications et administrateurs de syst�mes. Il s'agit notamment de la d�pr�ciation d'API obsol�tes et de la suppression d'API pr�c�demment d�pr�ci�es.

Voici quelques-unes des principales mises � jour figurant dans les notes de mise � jour de Java 22 :

  • Ajout d'algorithmes suppl�mentaires � keytool et jarsigner.
  • Am�lioration du d�bit du ramasse-miettes, notamment en ce qui concerne les d�chets "jeunes".
  • Meilleur rapport de version pour les descripteurs de modules syst�me.
  • Am�lioration des options de gestion de l'attente pour le code natif.
  • Le r�f�rentiel Unicode Common Locale Data Repository a �t� mis � jour � la version 44.
  • Prise en charge des annotations de type pour les types charg�s � partir du bytecode.
  • ForkJoinPool et ForJoinTasks peuvent maintenant mieux g�rer les t�ches ininterrompues.
  • Flexibilit� suppl�mentaire pour la configuration des propri�t�s de connexion TLS du client par rapport au serveur.
  • Am�lioration du suivi de la m�moire native, y compris la possibilit� de signaler les pics d'utilisation.


Enfin, comme toutes les publications de fonctionnalit�s, le JDK 22 comprend des centaines de mises � jour de performance, de stabilit� et de s�curit�, y compris l'adaptation aux mises � jour et aux normes des syst�mes d'exploitation et des microprogrammes sous-jacents. Les utilisateurs et les d�veloppeurs d'applications b�n�ficient g�n�ralement de ces changements sans les remarquer.

La caract�ristique constante de toutes les versions du JDK : La pr�visibilit�

Le JDK 22 est la 13e version de fonctionnalit�s livr�e dans les d�lais pr�vus par la cadence de publication semestrielle. Ce niveau de pr�visibilit� permet aux d�veloppeurs de g�rer facilement leur adoption de l'innovation gr�ce � un flux r�gulier d'am�liorations attendues.


La capacit� de Java � am�liorer les performances, la stabilit� et la s�curit� continue � en faire le langage de programmation le plus populaire au monde.

Oracle n'offrira pas de support � long terme pour le JDK 22 ; ils fourniront des mises � jour jusqu'en septembre 2024, date � laquelle il sera remplac� par l'Oracle JDK 23.

Java 22, ensemble

Comme pour les versions pr�c�dentes, Java 22 c�l�bre les contributions de nombreux individus et organisations de la communaut� OpenJDK - "nous construisons tous Java, ensemble !"

Ratio de correction du JDK 22

Le taux d'�volution dans le temps des versions du JDK est rest� largement constant pendant des ann�es, mais avec la cadence semestrielle, le rythme auquel les fonctionnalit�s et les am�liorations pr�tes pour la production sont livr�es a fortement augment�.

Au lieu d'apporter des dizaines de milliers de correctifs et de fournir pr�s d'une centaine de JEP (JDK Enhancement Proposals) tous les deux ans, comme Oracle le faisait avec les versions majeures pr�c�dentes, les am�liorations sont fournies dans des versions all�g�es (Feature Releases) selon un calendrier semestriel plus facile � g�rer et � pr�voir. Les changements vont de nouvelles fonctionnalit�s importantes � de petites am�liorations, en passant par la maintenance de routine, la correction de bogues et l'am�lioration de la documentation. Chaque changement est repr�sent� par un seul commit pour un seul probl�me dans le syst�me de bogues du JDK.

Sur les 26 447 probl�mes JIRA marqu�s comme corrig�s dans Java 11 � Java 22 au moment de leur disponibilit� g�n�rale, 18 842 ont �t� compl�t�s par des employ�s d'Oracle tandis que 7 605 ont �t� apport�s par des d�veloppeurs individuels et des d�veloppeurs travaillant pour d'autres organisations. En examinant les questions et en rassemblant les donn�es sur les organisations fournies par les assign�s, on obtient le tableau suivant des organisations qui parrainent le d�veloppement des contributions en Java :


Dans Java 22, sur les 2 251 probl�mes JIRA marqu�s comme corrig�s, 1 554 ont �t� compl�t�s par Oracle, tandis que 697 ont �t� apport�s par d'autres membres de la communaut� Java.


Oracle souhaite remercier les d�veloppeurs travaillant pour des organisations telles que Amazon, ARM, Google, Huawei, IBM, Intel, ISCAS, Microsoft, Red Hat, Rivos, SAP et Tencent pour leurs contributions notables. Ils sont �galement reconnaissants des contributions de plus petites organisations telles que Bellsoft Data Dog et Loongson, ainsi que des d�veloppeurs ind�pendants qui ont collectivement contribu� � 7% des correctifs de Java 22.

Source : Oracle

Et vous ?

Quel est votre avis sur cette nouvelle version de Java ?

Voir aussi :

�volution de Java en 2024 : Oracle vise � enrichir le langage avec les projets OpenJDK comme Leyden, Panama et Valhalla, pour am�liorer la productivit�, le temps de d�marrage des applications, etc.

� Java n'est pas pr�s de dispara�tre � : le langage de programmation est toujours sur la liste des priorit�s des entreprises en 2024, selon le rapport Java Developer Productivity de Perforce

"Java 21 me fait � nouveau aimer Java", il pr�sente quelques points forts, notamment la prise en charge des motifs d'enregistrement, par Raghav Shankar
Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant 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