La próxima versión de soporte a largo plazo de Java estándar, Java Development Kit (JDK) 21, está prevista para septiembre e incluirá colecciones secuenciadas, hilos virtuales, plantillas de cadenas y una API de memoria y funciones externas (en fase de previsualización). Estas características están pensadas para mejorar la experiencia de los desarrolladores en áreas que van desde la escritura hasta el mantenimiento y la supervisión de aplicaciones concurrentes de alto rendimiento.
Aunque todavía no aparece oficialmente en la página de versiones de JDK 21, se cree que la API de memoria y funciones externas se ha añadido recientemente. Esta API permite a los programas Java interoperar sin problemas con código y datos más allá del tiempo de ejecución de Java. Permite una comunicación eficaz con funciones externas y un acceso seguro a la memoria externa, lo que permite a los programas Java interactuar con bibliotecas nativas y procesar datos nativos sin la fragilidad y el riesgo que plantea la interfaz nativa de Java (JNI).
La API de funciones y memoria externas ya se había presentado en JDK 20 y JDK 19, que salieron a la venta en marzo y septiembre del año pasado, respectivamente. La última versión incluye mejoras como la optimización de las rutas de diseño, la gestión centralizada de la vida útil de los segmentos nativos en la interfaz Arena, la implementación de un enlazador nativo de reserva y la eliminación de VaList. Los objetivos de esta API son la facilidad de uso, el rendimiento, la generalidad y la seguridad. Sin embargo, no pretende sustituir a JNI ni modificarla en modo alguno.
JDK 21 también traerá hilos virtuales finalizados, que son hilos ligeros muy prometedores para reducir drásticamente los retos de escribir, mantener y observar aplicaciones concurrentes de alto rendimiento. Los objetivos de esta función son permitir que las aplicaciones de servidor se escalen eficazmente con una utilización óptima del hardware, promover la adopción de hilos virtuales con cambios mínimos en el código API lang.Thread existente y simplificar la depuración y creación de perfiles de hilos virtuales con las herramientas actuales del JDK. El JDK 21 garantizará la compatibilidad total de las variables locales con los hilos virtuales, lo que aumentará la compatibilidad con las bibliotecas existentes y facilitará la migración del código basado en tareas al uso de hilos virtuales.
Las colecciones secuenciadas son otro conjunto de características que acompañarán a JDK 21. Estas interfaces permiten representar colecciones con un orden de encuentro claro, en el que cada colección tiene bien definidos el primer y segundo elemento y así sucesivamente. Se proporcionarán API uniformes para facilitar el acceso al primer y al último elemento y para invertir el orden de procesamiento de los elementos. Al definir interfaces de secuenciación para colecciones, conjuntos y mapas, esta propuesta pretende colmar las lagunas del marco de colecciones de Java y satisfacer las demandas de los usuarios desde hace tiempo.
Las plantillas de cadenas se estrenarán como función preliminar en JDK 21, mejorando los literales de cadena y los bloques de texto existentes en Java mediante la fusión de texto literal con expresiones y procesadores incrustados para generar resultados especializados. El objetivo principal de esta función es simplificar la programación en Java facilitando la expresión de cadenas que incorporan valores calculados en tiempo de ejecución. Las plantillas de cadenas están diseñadas para mejorar la legibilidad de las expresiones, aumentar la seguridad de los programas, mantener la flexibilidad y facilitar el trabajo con API que aceptan cadenas escritas en lenguajes distintos de Java.
Según el plan de lanzamiento propuesto para JDK 21, la lista de características se congelará tras las fases de rampdown del 8 de junio y el 20 de julio, durante las cuales continuarán las correcciones de errores. Las versiones candidatas inicial y final se lanzarán el 10 y el 24 de agosto, y es posible que se sigan corrigiendo errores. La disponibilidad general está prevista para el 19 de septiembre.
JDK 21 será una versión de soporte a largo plazo (LTS), que ofrecerá cinco años de soporte Premier y soporte ampliado hasta septiembre de 2031. JDK 17, la versión LTS actual, se lanzó en septiembre de 2021. Las versiones que no son LTS, incluidas JDK 20 y JDK 19, sólo reciben seis meses de soporte Premier y ningún soporte ampliado.
Las implementaciones estándar de Java de Oracle se publican cada seis meses, y las características potenciales para JDK 21 incluyen todas las características en fase de incubación y previsualización en JDK 20. Éstas pueden incluir valores de ámbito, patrones de registro y concordancia de patrones para sentencias switch, así como genéricos universales, el recolector de basura generacional Z y la API VM de rastreo de pila asíncrona. Otras plataformas de vanguardia, como las plataformas sin código y de bajo código, como AppMaster, también pueden beneficiarse de estos avances en la tecnología Java.