Noticia Java SE 23 presenta mejoras de rendimiento, en compilador y ocho funciones de vista previa

Java 23


JDK 23 trae 12 mejoras clave, desde tipos primitivos hasta importaciones de módulos


Hace pocos días, Oracle dio a conocer mediante una publicación de blog el lanzamiento de la nueva versión de Java SE 23. Lanzada como una versión de soporte regular (recibirá actualizaciones hasta la siguiente versión). Las versiones LTS, como Java SE 21 y Java SE 17, tendrán soporte extendido hasta 2031 y 2029, respectivamente, mientras que Java SE 8 y SE 11 seguirán recibiendo soporte ampliado hasta 2030 y 2032.

Entre las 23 nuevas características de Java SE 23, destaca la activación por defecto del Generational Z Garbage Collector, un modo de operación generativo que separa el procesamiento de objetos. Esto mejora la eficiencia en la limpieza de objetos, reduce la carga en la CPU, el consumo de memoria y el riesgo de bloqueos en la asignación de recursos.

Otra novedad es la inclusión de soporte para Markdown en JavaDoc, lo que facilita la documentación de código al permitir el uso de Markdown en lugar de etiquetas HTML combinadas con JavaDoc.

En Java SE 23 el patrón de coincidencia también se ha mejorado para admitir tipos primitivos, permitiendo su uso en la declaración «instanceof» y en bloques switch. Esto permite manejar tipos primitivos, como int o byte, directamente en estructuras de control de flujo, mejorando la claridad y funcionalidad del código.

Java SE 23 introduce además el soporte preliminar para la declaración de importación de módulos con import module M, lo que permite importar todos los paquetes exportados por un módulo específico en una sola línea.

Otro aspecto importante es la actualización de JavaFX 23, una plataforma mejorada para el desarrollo de interfaces gráficas. Junto a esto, el compilador GraalVM JIT ha sido integrado en el JDK principal de Oracle, ofreciendo mayor rendimiento y optimización en tiempo de ejecución.

En cuanto a GraalVM, su nueva versión presenta soporte para la ejecución de aplicaciones en una amplia variedad de lenguajes, además de lenguajes que generan código LLVM, como C, C++ y Rust. Esta versión mejora el consumo de memoria, reduce el tamaño del código ejecutable, y ofrece soporte para incrustar Python y WebAssembly en código Java mediante compilación JIT.

Por otra parte, se presenta la octava vista previa de la Vector API en Java SE 23 que introduce funciones avanzadas para realizar cálculos vectoriales que aprovechan las instrucciones SIMD en procesadores x86_64 y AArch64. Esta API permite a los desarrolladores controlar explícitamente la vectorización de las operaciones, a diferencia de la vectorización automática que ofrece el compilador HotSpot JIT. Esto mejora el rendimiento al procesar datos en paralelo.

También se ha introducido una segunda implementación preliminar de una API Stream extendida, que permite la definición de operaciones intermedias personalizadas, útiles cuando las transformaciones de datos estándar no son suficientes.

De los demás cambios que sé destacan de esta nueva versión:

  • Los métodos para acceder a la memoria externa (fuera de la JVM) proporcionados por la clase sun.misc.Unsafe han sido marcados como obsoletos y se planea su eliminación en futuras versiones.
  • La clase java.io.Console ahora incluye nuevos métodos como format, printf, readPassword y readLine.
  • Se presenta una segunda implementación preliminar de la API Class-File, que facilita el análisis, la generación y la conversión de archivos de clase Java, permitiendo una mayor flexibilidad en la manipulación de bytecode.
  • Las clases y métodos declarados implícitamente permiten simplificar el código, eliminando la necesidad de especificar declaraciones públicas o estáticas para los métodos principales.
  • Se incluye una tercera implementación de Scoped Values, una nueva forma de compartir datos inmutables entre subprocesos de manera más eficiente, especialmente en entornos donde se utilizan una gran cantidad de subprocesos virtuales.
  • Se ha propuesto una tercera vista previa de la API de simultaneidad estructurada en Java SE 23, que tiene como objetivo simplificar el desarrollo de aplicaciones multiproceso. Esta API permite manejar varias tareas ejecutándose en diferentes subprocesos de manera más controlada y coherente, tratándolas como si fueran un único bloque de código.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Descargar Java SE 23​


Para los interesados en instalar la nueva versión de Java SE 23, deben saber que las compilaciones (JDK, JRE y Server JRE) ya están listas para Linux, Windows y macOS.

Continúar leyendo...