Lanzamiento de Java SE 19

Después de seis meses de desarrollo, Oracle lanzó Java SE 19 (Java Platform, Standard Edition 19), que utiliza el proyecto de código abierto OpenJDK como implementación de referencia. Con la excepción de la eliminación de algunas características obsoletas, Java SE 19 mantiene la compatibilidad con versiones anteriores de la plataforma Java; la mayoría de los proyectos Java escritos anteriormente funcionarán sin cambios cuando se ejecuten con la nueva versión. Las compilaciones listas para instalar de Java SE 19 (JDK, JRE y Server JRE) están preparadas para Linux (x86_64, AArch64), Windows (x86_64) y macOS (x86_64, AArch64). Desarrollada por el proyecto OpenJDK, la implementación de referencia de Java 19 es completamente de código abierto bajo la licencia GPLv2, con excepciones GNU ClassPath que permiten enlaces dinámicos con productos comerciales.

Java SE 19 está clasificada como una versión de soporte general y seguirá recibiendo actualizaciones hasta la próxima versión. La rama de soporte a largo plazo (LTS) debería ser Java SE 17, que seguirá recibiendo actualizaciones hasta 2029. Le recordamos que a partir del lanzamiento de Java 10, el proyecto pasó a un nuevo proceso de desarrollo, lo que implica un ciclo más corto para la formación de nuevas versiones. Ahora se desarrolla nueva funcionalidad en una rama maestra constantemente actualizada, que incluye cambios ya hechos y desde la cual las ramas se ramifican cada seis meses para estabilizar las nuevas versiones.

Las nuevas características de Java 19 incluyen:

  • Se ha propuesto soporte preliminar para patrones de registros, ampliando la función de coincidencia de patrones introducida en Java 16 con herramientas para analizar los valores de clases de registros. Por ejemplo: registrar Punto(int x, int y) {} void printSum(Objeto o) { if (o instancia de Punto(int x, int y)) { System.out.println(x+y); } }
  • Las compilaciones de Linux brindan soporte para la arquitectura RISC-V.
  • Se agregó soporte preliminar para la API FFM (Foreign Function & Memory), que le permite organizar la interacción de programas Java con código y datos externos llamando a funciones desde bibliotecas externas y accediendo a la memoria fuera de la JVM.
  • Se agregó soporte para subprocesos virtuales, que son subprocesos livianos que simplifican enormemente la escritura y el mantenimiento de aplicaciones multiproceso de alto rendimiento.
  • Se ha propuesto una cuarta vista previa de Vector API, que proporciona funciones para cálculos vectoriales que se ejecutan mediante instrucciones vectoriales en procesadores x86_64 y AArch64 y permiten aplicar operaciones simultáneamente a múltiples valores (SIMD). A diferencia de las capacidades proporcionadas en el compilador HotSpot JIT para la vectorización automática de operaciones escalares, la nueva API permite controlar explícitamente la vectorización para el procesamiento de datos en paralelo.
  • Se ha agregado una tercera implementación experimental de coincidencia de patrones en expresiones de "cambio", que permite el uso en etiquetas de "caso" no de valores exactos, sino de patrones flexibles que cubren una serie de valores a la vez, para lo cual antes era necesario Utilice cadenas engorrosas de expresiones "si... si no". Objeto o = 123L; Cadena formateada = cambiar (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); caso Doble d -> String.format("doble %f", d); caso Cadena s -> String.format("Cadena %s", s); predeterminado -> o.toString(); };
  • Se agregó una API experimental para paralelismo estructurado, que simplifica el desarrollo de aplicaciones multiproceso al tratar múltiples tareas que se ejecutan en diferentes subprocesos como un solo bloque.

Fuente: opennet.ru

Añadir un comentario