Maison >Java >javaDidacticiel >Java 21 est sorti ! Les threads virtuels et les interfaces IA font des débuts époustouflants, et la version LTS continuera d'être prise en charge pendant 8 ans

Java 21 est sorti ! Les threads virtuels et les interfaces IA font des débuts époustouflants, et la version LTS continuera d'être prise en charge pendant 8 ans

DDD
DDDoriginal
2023-09-20 10:43:171581parcourir

Hier soir, Oracle a annoncé la version officielle de Java 21 et le kit de développement JDK 21 correspondant. Cette version est la dernière version de support à long terme (LTS) après JDK 17 et sera supportée pendant au moins 8 ans.

Java 21 propose des milliers d'améliorations en termes de performances, de stabilité et de sécurité. Le nouveau JDK 21 comprend un accès anticipé à 15 améliorations annoncées lors de la conférence Oracle CloudWorld 2023, notamment la prise en charge des threads virtuels pour améliorer le débit global et une prise en charge supplémentaire de l'interface de programmation d'applications vectorielles (API), qui permet de créer des applications Java impliquant des modèles d'IA d'intelligence artificielle. facilement.

Java 21 introduit également le nouveau mécanisme de récupération de place générationnel ZGC et rendra obsolète l'interface x86 32 bits qui est en cours de suppression.

Les mises à jour importantes disponibles dans Java 21 incluent :

Fonctionnalités de Project Loom

  • Virtual Threads : simplifiez considérablement le processus d'écriture, de maintenance et d'observation d'applications simultanées à haut débit en introduisant des threads virtuels légers à la plate-forme Java. Les threads virtuels aident à accélérer le développement d'applications en permettant aux développeurs de dépanner, de déboguer et d'analyser facilement les applications simultanées et de les étendre à l'aide des outils et technologies JDK existants.
  • Valeurs de portée (Aperçu)  : Permet le partage de données immuables au sein et entre les threads. Cela contribue à améliorer la convivialité, la compréhensibilité, la robustesse et les performances des projets des développeurs.
  • Concurrence structurée (aperçu)  : Simplifiez la programmation simultanée en introduisant une API de concurrence structurée, qui contribue à promouvoir un style de programmation simultanée qui élimine les risques courants dus à l'annulation et à la fermeture (tels que les fuites de threads et les retards d'annulation), et améliorer l'efficacité de la programmation simultanée. Observabilité du code concurrent. Cela aide les développeurs à simplifier la gestion et l’annulation des erreurs, à améliorer la fiabilité et l’observabilité.

Mise à jour des performances

  • ZGC générationnel : améliorez les performances de l'application en étendant le Z Garbage Collector (ZGC) pour maintenir différentes générations d'objets nouveaux et anciens. Le ZGC générationnel contribue à améliorer la productivité des développeurs en réduisant la charge de mémoire tas et de récupération de place du processeur requise par les applications et en réduisant le risque de blocage d'allocation.

Mises à jour et améliorations du langage

  • Modèles de chaînes (aperçu)  : Simplifiez le développement de programmes Java en exprimant facilement des chaînes contenant des valeurs calculées à l'exécution et améliorez les performances des programmes Java à partir des données fournies par l'utilisateur. Sécurité des programmes qui composent des chaînes de valeurs et les transmettent à d'autres systèmes. De plus, la lisibilité des expressions qui mélangent texte et expressions est améliorée, et des valeurs non-chaînes calculées à partir de texte littéral et d'expressions incorporées peuvent être créées sans passer par une représentation sous forme de chaîne intermédiaire. Cela rend le langage Java plus lisible, inscriptible et maintenable, contribuant ainsi à augmenter la productivité des développeurs.
  • Modèles d'enregistrement (troisième aperçu)  : améliore le langage Java en étendant la correspondance de modèles pour déconstruire les instances de classes d'enregistrement et en permettant l'ajout de modèles imbriqués. Cela permet aux développeurs d'étendre la correspondance de modèles à des requêtes de données plus complexes et composables, ce qui contribue à améliorer la productivité.
  • Correspondance de modèles pour Switch : étend l'expressivité et l'applicabilité des expressions et instructions switch en permettant aux modèles d'apparaître dans les étiquettes de cas. De plus, la sécurité des instructions switch est améliorée en exigeant que les instructions switch de mode couvrent toutes les valeurs d'entrée possibles et que toutes les expressions et instructions switch existantes puissent continuer à se compiler sans aucune modification et à s'exécuter avec la même sémantique.Cela aide les développeurs à simplifier et à améliorer la fiabilité de leurs projets en rendant le langage Java plus sémantique, permettant ainsi d'exprimer des requêtes complexes orientées données de manière concise et sûre.
  • Modèles et variables sans nom (aperçu)  : amélioré en permettant aux modèles sans nom de correspondre aux composants documentés sans indiquer le nom ou le type du composant, et aux variables sans nom qui peuvent être initialisées mais ne pas utiliser le langage Java. Cela permet de simplifier le processus de développement en rendant le schéma enregistré plus lisible et en améliorant la maintenabilité de tout le code.
  • Méthodes principales de classe et d'instance sans nom (aperçu)  : Aide à simplifier et à accroître l'accessibilité du langage Java afin que les enseignants puissent introduire progressivement les concepts de programmation. En évitant l'introduction d'un dialecte Java distinct pour débutants et d'une chaîne d'outils distincte pour débutants, les programmes des étudiants peuvent être compilés et exécutés à l'aide des mêmes outils qui compilent et exécutent n'importe quel programme Java, aidant ainsi les étudiants à écrire des programmes de base de manière concise et à étendre le code avec élégance. leurs compétences s’améliorent. Cela contribue à rendre les étudiants développeurs plus productifs, leur permettant d'écrire leurs premiers programmes sans avoir à comprendre les fonctionnalités du langage conçues pour des programmes plus volumineux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn