Java SE 22 ya fue liberado y estas son sus novedades
Oracle dio a conocer hace poco el lanzamiento de la nueva versión de Java SE 22, la cual se presenta después de seis meses de desarrollo y la cual es clasificada como una versión de soporte regular y continuará recibiendo actualizaciones hasta la próxima versión.
Las actuales versiones LTS son Java SE 21 y Java SE 17, las cuales recibirán actualizaciones hasta 2031 y 2029, respectivamente (generalmente disponibles hasta 2028 y 2026) y el soporte público para la versión LTS de Java SE 11 que finalizó en septiembre pasado, se extendió hasta 2032, mientras que el soporte extendido para la versión LTS de Java SE 8 continuará hasta 2030.
Principales novedades de Java SE 22
En esta nueva versión que se presenta de Java SE 22 se destaca la introduccion de la segunda implementación de vista previa de «Scoped Values», que facilita el intercambio eficiente de datos inmutables entre subprocesos y la herencia de valores entre ellos.
Esta funcionalidad está diseñada para ser más eficiente al compartir datos entre subprocesos secundarios, especialmente cuando se manejan grandes cantidades de subprocesos virtuales. Los valores de alcance están diseñados para reemplazar las variables locales del subproceso y son particularmente efectivos en escenarios con miles o millones de subprocesos. La principal diferencia entre los valores de alcance y las variables locales del subproceso radica en su naturaleza inmutable: los valores de alcance se escriben una vez y no pueden modificarse en el futuro. Además, permanecen disponibles solo durante la ejecución del subproceso en el que se definieron.
Otro de los cambios que se destaca de Java SE 22 es que el recolector de basura G1 ahora incluye soporte para la fijación de regiones, que permite fijar temporalmente la ubicación de los objetos en la memoria. Esta característica evita que el recolector de basura mueva estos objetos, permitiendo que las referencias a ellos se pasen de manera segura entre Java y el código nativo. La fijación de regiones ayuda a reducir la latencia y evita deshabilitar la recolección de basura al ejecutar secciones críticas de JNI (Java Native Interface) con código nativo.
Además de ello, también se ha implementado una característica preliminar para permitir a los constructores especificar expresiones antes de llamar a super(…). Esto se utiliza para llamar explícitamente a un constructor de la clase principal desde un constructor de clase heredada, siempre que estas expresiones no se refieran a una instancia creada por el constructor.
Además, la API FFM (Foreign Function & Memory) se ha estabilizado y con ello ahora se permite la interacción de programas Java con código y datos externos llamando a funciones desde bibliotecas externas y accediendo a memoria fuera de la JVM. Esto se logra sin tener que recurrir al uso de JNI (Java Native Interface).
De los demás cambios que se destacan de esta nueva versión:
- El recolector de basura paralelo ha experimentado mejoras en su rendimiento al trabajar con grandes conjuntos de objetos. Esta optimización ha permitido reducir el tiempo de espera antes de comenzar a buscar un objeto en un 20% en algunas pruebas con conjuntos de objetos considerablemente grandes.
- Ahora es posible utilizar el carácter «_» para especificar variables y patrones no utilizados pero necesarios al llamar. Esto simplifica la escritura de código al evitar la necesidad de nombrar variables innecesarias.
- Se ha propuesto una API preliminar para analizar, generar y convertir archivos de clase Java.
- Ahora es posible ejecutar programas Java sin compilarlos por separado ni configurar un sistema de compilación. Esto simplifica la ejecución de programas donde el código está distribuido en varios archivos.
- Se ha agregado una segunda implementación de String Templates, que permite la combinación de texto con expresiones y variables calculadas de manera más eficiente y legible.
- Se han propuesto implementaciones preliminares de la API Vector para cálculos vectoriales y la API para Concurrencia Estructurada para simplificar el desarrollo de aplicaciones multiproceso.
Finalmente, si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
Descargar Java SE 22
Para los interesados en instalar la nueva versión de Java SE 22, deben saber que las compilaciones (JDK, JRE y Server JRE) ya están listas para Linux, Windows y macOS.