Oracle se enorgullece de anunciar la disponibilidad general de JDK 20. Esta versión es la undécima versión de características que se entrega puntualmente a través de la cadencia de lanzamiento semestral. Este nivel de previsibilidad permite a los desarrolladores gestionar fácilmente su adopción de la innovación gracias a un flujo constante de mejoras previstas.
La capacidad de Java para mejorar el rendimiento, la estabilidad y la seguridad sigue convirtiéndolo en el lenguaje de programación más popular del mundo.
JDK 20 ya está disponible
Oracle ya ofrece JDK 20 para desarrolladores, usuarios finales y empresas.
Oracle JDK 20 no es una versión de soporte a largo plazo (LTS), por lo que sólo recibirá actualizaciones hasta que sea sustituida dentro de seis meses por JDK 21.
Oracle JDK 17 (publicado el 14 de septiembre de 2021) es la versión LTS más reciente de Java. Oracle anunció planes para acortar el tiempo entre versiones LTS, de tres a dos años, por lo que JDK 21 (septiembre de 2023) está previsto que sea la próxima LTS.
Java 20, juntos
Al igual que hicimos con las versiones anteriores, con Java 20 celebramos las contribuciones de muchas personas y organizaciones de la comunidad OpenJDK: ¡todos creamos Java, juntos!
Ratio de correcciones del JDK 20
El ritmo de cambio a lo largo del tiempo en las versiones del JDK se ha mantenido prácticamente constante durante años, pero con la cadencia semestral ha aumentado considerablemente el ritmo al que se entregan las características y mejoras listas para la producción.
En lugar de realizar decenas de miles de correcciones y entregar cerca de un centenar de JEP (propuestas de mejora del JDK) cada pocos años, como hacíamos con las versiones principales de antaño, las mejoras se entregan en versiones de características más reducidas con un calendario semestral más manejable y predecible. Los cambios van desde nuevas funciones significativas a pequeñas mejoras, pasando por el mantenimiento rutinario, la corrección de errores y la mejora de la documentación. Cada cambio se representa en una única confirmación para un único problema en el sistema de errores del JDK.
En Java 20, de las 2.314 incidencias de JIRA marcadas como corregidas, 1.595 fueron completadas por Oracle, mientras que 719 fueron aportadas por otros miembros de la comunidad Java.
Oracle desea agradecer sus notables contribuciones a los desarrolladores que trabajan para organizaciones como Alibaba, Amazon, ARM, Google, Huawei, IBM, Intel, ISCAS, Red Hat, SAP y Tencent. También agradecemos las contribuciones de organizaciones más pequeñas, como Bellsoft y Loongson, así como de desarrolladores independientes que, en conjunto, han aportado el 7% de las correcciones de Java 20.
Estamos igualmente agradecidos a los numerosos desarrolladores experimentados que revisaron los cambios propuestos, a los primeros usuarios que probaron las primeras versiones de acceso e informaron de los problemas, y a los dedicados profesionales que aportaron sus comentarios en las listas de correo de OpenJDK.
Las siguientes personas han aportado comentarios inestimables sobre la calidad de las versiones, han registrado errores de buena calidad o han ofrecido actualizaciones frecuentes:
Rick Hillegas (Apache Derby)
Uwe Schindler (Apache Lucene)
Jaikiran Pai (Apache Ant)
Rafael Winterhalter (Byte Buddy)
Yoann Rodière (proyectos Hibernate)
Marc Hoffman (JaCoCo)
Lukas Eder (JOOQ)
Vladimir Sitnikov (AssertJ)
Además, a través del programa OpenJDK Quality Outreach, nos gustaría dar las gracias a los siguientes proyectos FOSS y a las personas que proporcionaron excelentes comentarios sobre las pruebas de las versiones de acceso anticipado de Java 20 para ayudar a mejorar la calidad de la versión:
Apache Tomcat y Apache Wicket (Martin Grigorov)
Apache Zookeeper (Enrico Olivelli)
MyBatis (Iwao Ave)
RxJava (David Karnok)
Spoon (Martin Wittlinger)
Como mención especial, nos gustaría dar las gracias a Rick Hillegas y al equipo de Apache Derby por sus comentarios fiables y regulares durante el ciclo de pruebas de Early Access de cada versión de JDK desde hace varios años.
Novedades de Java 20
Junto con miles de actualizaciones de rendimiento, estabilidad y seguridad, Java 20 ofrece docenas de nuevas funciones y mejoras, siete de las cuales son lo suficientemente importantes como para justificar sus propias propuestas de mejora del JDK (JEP), que abarcan cuatro funciones preliminares y tres funciones de incubadora.
Algunos de los cambios más importantes que no requieren una JEP, son:
(D)Grupos Nombrados de Intercambio de Claves TLS
Añadir GarbageCollectorMXBean para Remark y Cleanup Pause Time en G1
Proporcionar ChaCha20 Intrinsics en x86_64 y aarch64 Plataformas
Soporte Unicode 15.0
Control mejorado de los hilos de refinamiento concurrentes de G1
Compatibilidad con CLDR versión 42
Nuevo evento JFR: jdk.InitialSecurityProperty
Nuevo evento JFR: jdk.SecurityProviderService
Página API de vista previa mejorada
Nueva opción de línea de comandos ‘jmod –compress
Soporte de grafemas en BreakIterator
Actualización de datos de zona horaria a 2022c
IDs autogenerados en los encabezados de JavaDoc
Encontrará información detallada sobre estas y otras muchas novedades en https://jdk.java.net/20/release-notes.
Las características JEP Preview son características del lenguaje o de la máquina virtual de la plataforma Java SE totalmente especificadas e implementadas; y, sin embargo, no son permanentes. Están disponibles en las versiones de características del JDK para que los desarrolladores puedan dar su opinión basándose en usos reales, antes de que se conviertan en permanentes en una versión futura. Esto también ofrece a los proveedores de herramientas la oportunidad de trabajar para dar soporte a las características antes de que se finalicen en el estándar Java SE.
Los módulos JEP Incubator permiten poner API no definitivas y herramientas no definitivas en manos de desarrolladores y usuarios para recabar comentarios que, en última instancia, mejorarán la calidad de la plataforma Java.
Los siete JEP entregados con Java 20 se agrupan en tres categorías que corresponden a proyectos clave de tecnología Java a largo plazo y soporte de hardware.