JDK 17: Nuevas funciones en Java 17

  • Semántica de punto flotante siempre fuerte





  • API de funciones y memoria de terceros





  • API unificada para generadores de números pseudoaleatorios





Java 17, que saldrá a la venta en septiembre, sigue tomando forma, con nueve funciones planificadas para una actualización a Java estándar, y dos funciones se están eliminando y dos funciones ya no son compatibles. Los últimos cambios, a partir del 24 de mayo, agregaron la coincidencia de patrones para las expresiones de cambio y restauraron la semántica de punto flotante siempre fuerte.





Java Development Kit (JDK) 17 será una versión de soporte a largo plazo (LTS), y se espera soporte extendido para Oracle durante varios años. Las características introducidas como parte del JDK 17 de OpenJDK incluyen las siguientes:





  • Con la restauración de una semántica de punto flotante siempre fuerte, las operaciones de coma flotante serán permanentemente estrictas, en lugar de tener una semántica de coma flotante estricta (estrictafp) y una semántica de coma flotante predeterminada ligeramente diferente. Esto restaura la semántica de punto flotante original para el lenguaje y la máquina virtual, haciendo coincidir la semántica antes de la introducción de los modos fuerte y de punto flotante por defecto en Java Standard Edition 1.2. Los objetivos de este costo incluyen facilitar el desarrollo de bibliotecas sensibles a los números, incluidas java.lang.Math y java.lang.StrictMath. El incentivo para cambiar la semántica de coma flotante predeterminada a fines de la década de 1990. fue causado por una mala interacción entre el lenguaje Java original y la semántica de JVM, así como por algunas peculiaridades del conjunto de instrucciones del coprocesador de coma flotante x87 de la popular arquitectura x86.El cumplimiento de la semántica de coma flotante exacta en todos los casos, incluidos los operandos y resultados subnormales, requirió una gran sobrecarga de instrucciones adicionales. La comparación de resultados sin desbordamiento o subdesbordamiento se puede hacer con menos sobrecarga, que es lo que permite la semántica de punto flotante predeterminada revisada introducida en Java SE 1.2. Pero las Streaming SIMD Extensions 2 (SSE2) enviadas en Pentium 4 y los procesadores posteriores a partir de 2001 pudieron admitir directamente las estrictas operaciones de punto flotante de la JVM sin una sobrecarga excesiva. Dado que Intel y AMD admiten SSE2 y extensiones posteriores, que permiten el soporte nativo para semántica de punto flotante fuerte,la motivación técnica para usar una semántica de coma flotante predeterminada que no sea estricta ya no existe.





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





    • Soporte mejorado para programación de transmisión que proporciona transmisiones de objetos PRNG.





    • Elimina la duplicación de código en las clases PRNG existentes.





    • Preservando el comportamiento existente de la clase java.util.Random.





Está previsto que JDK 17 salga a bolsa el 14 de septiembre. El lanzamiento de producción estará precedido por fases de implementación en junio y julio, y el lanzamiento de candidatos en agosto. Las compilaciones JDK 17 de acceso temprano de código abierto se pueden encontrar en jdk.java.net .





Los lanzamientos de LTS como JDK 17 aparecen cada tres años. La última versión de LTS, JDK 11, se publicó en septiembre de 2018. Cada seis meses aparecen nuevas versiones de Java.








All Articles