JDK 17 : nouvelles fonctionnalités de Java 17

  • Sémantique à virgule flottante toujours forte





  • API de fonctions tierces et mémoire





  • API unifiée pour les générateurs de nombres pseudo-aléatoires





Java 17, dont la sortie est prévue pour septembre, continue de prendre forme, avec neuf fonctionnalités prévues pour une mise à niveau vers Java standard, deux fonctionnalités sont supprimées et deux fonctionnalités ne sont plus prises en charge. Les derniers changements, en date du 24 mai, ont ajouté une correspondance de modèle pour les expressions de commutateur et restauré la sémantique de virgule flottante toujours forte.





Java Development Kit (JDK) 17 sera une version de support à long terme (LTS), avec un support étendu pour Oracle attendu sur plusieurs années. Les fonctionnalités introduites dans le cadre du JDK 17 d'OpenJDK sont les suivantes :





  • Avec la restauration d'une sémantique à virgule flottante toujours forte, les opérations en virgule flottante seront en permanence strictes, au lieu d'avoir à la fois une sémantique de virgule flottante stricte (strictfp) et une sémantique de virgule flottante par défaut légèrement différente. Cela restaure la sémantique de virgule flottante d'origine pour le langage et la machine virtuelle, correspondant à la sémantique avant l'introduction des modes de virgule forte et flottante par défaut dans Java Standard Edition 1.2. Les objectifs de ce coût incluent de faciliter le développement de bibliothèques numériques, y compris java.lang.Math et java.lang.StrictMath. L'incitation à changer la sémantique par défaut des virgules flottantes à la fin des années 1990. a été causé par une mauvaise interaction entre le langage Java d'origine et la sémantique JVM, ainsi que par certaines particularités du jeu d'instructions du coprocesseur à virgule flottante x87 de l'architecture x86 populaire.La conformité avec la sémantique exacte à virgule flottante dans tous les cas, y compris les opérandes et les résultats sous-normaux, nécessitait une surcharge importante d'instructions supplémentaires. La comparaison des résultats sans dépassement ou dépassement inférieur peut être effectuée avec moins de surcharge, ce qui correspond à ce que permet la sémantique de virgule flottante par défaut révisée introduite dans Java SE 1.2. Mais les Streaming SIMD Extensions 2 (SSE2) livrés dans les processeurs Pentium 4 et ultérieurs à partir de 2001 environ étaient capables de prendre en charge directement les opérations strictes en virgule flottante de la JVM sans surcharge excessive. Étant donné qu'Intel et AMD prennent en charge SSE2 et les extensions ultérieures, qui permettent une prise en charge native d'une sémantique à virgule flottante forte,la motivation technique pour utiliser une sémantique à virgule flottante par défaut autre que stricte n'est plus là.





  • Security Manager, . Java 1.0, Security Manager Java . - , API , Security Manager, , System::exit. Security Manager Applet API, JDK 17.





  • switch Java, switch , . , . switch case, switch : , , . JDK 16 instanceof , . instanceof-and-cast.





  • JDK, API, misc.unsafe, , JDK 9 - JDK 16. JDK, API.





  • (RMI) RMI. RMI , JDK 15.





  • API , , Java Java. , .. JVM, , .. , JVM, API Java JNI (Java Native Interface). API API - API API . API Java 14 2019 API Java 15 Java 16. API Java 16 API 2020 . API , , .





  • JDK 16 API, vector API JDK 17, , . , . JDK 17 vector API , .





  • , . , , , , , .





  • AOT JIT, , . JVM Java, JIT-. AOT ( jaotc) JDK 9 . Graal, Java, AOT. JDK 16, Oracle, . , JDK : jdk.aot ( jaotc); internal.vm.compiler, Graal; jdk.internal.vm.compiler.management, MBean Graal. HotSpot, AOT.





  • JDK MacOS / AArch64 Apple Macintosh x64 AArch64. AArch64 Java Linux, Windows. Java AArch64 , , JDK, , . MacOS / AArch64 Linux / AArch64, Windows / AArch64 MacOS / x64, .





  • Applet API . API , - Java, . Applet API , Java 9 2017 .





  • MacOS, Apple Metal API , API OpenGL. Java 2D API, MacOS Metal, , Apple OpenGL API MacOS. , OpenGL, , . , 2D- Java. OpenGL , . - API- Java JDK.





  • , (PRNG), PRNG PRNG (LXM). RandomGenerator API PRNG. RandomGenerator. - Java. PRNG. , . :





    • PRNG .





    • Prise en charge améliorée de la programmation en streaming fournissant des flux d'objets PRNG.





    • Éliminez la duplication de code dans les classes PRNG existantes.





    • Préservation du comportement existant de la classe java.util.Random.





JDK 17 devrait être rendu public le 14 septembre. La sortie de production sera précédée de phases de déploiement en juin et juillet, et de sortie des candidats en août. Les versions Open Source Early Access JDK 17 peuvent être trouvées sur jdk.java.net .





Les versions LTS comme JDK 17 apparaissent tous les trois ans. La dernière version de LTS, JDK 11, a été publiée en septembre 2018. De nouvelles versions de Java apparaissent tous les six mois.








All Articles