Lanzamiento de Java SE 19

Después de seis meses de desarrollo, Oracle lanzó la plataforma Java SE 19 (Java Platform, Standard Edition 19), cuya implementación de referencia utiliza el proyecto abierto OpenJDK. A excepción de la eliminación de algunas características obsoletas, Java SE 19 mantiene la compatibilidad hacia atrás con versiones anteriores de la plataforma Java; la mayoría de los proyectos Java escritos previamente funcionarán sin cambios al ejecutarse en la nueva versión. Las versiones 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). La implementación de referencia de Java 19, desarrollada en el marco del proyecto OpenJDK, está completamente abierta bajo la licencia GPLv2 con excepciones GNU ClassPath que permiten el enlace dinámico con productos comerciales.

Java SE 19 se clasifica como una versión con un ciclo de soporte estándar, con actualizaciones que se emitirán hasta el próximo lanzamiento. Se debe utilizar Java SE 17 como la rama de soporte a largo plazo (LTS), con actualizaciones que se lanzarán hasta 2029. Cabe recordar que a partir del lanzamiento de Java 10, el proyecto adoptó un nuevo proceso de desarrollo, que implica un ciclo de lanzamiento más corto. Las nuevas funcionalidades ahora se desarrollan en una rama master que se actualiza continuamente, a la que se incorporan cambios listos y de la cual se ramifican cada seis meses ramas para estabilizar nuevos lanzamientos.

Entre las novedades de Java 19 se pueden destacar:

  • Se ha propuesto soporte preliminar para patrones de registros (record pattern), que amplían la capacidad de coincidencia por patrones introducida en Java 16 para analizar valores de clases del tipo record. Por ejemplo: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • Las compilaciones para Linux cuentan con soporte para la arquitectura RISC-V.
  • Se ha añadido soporte preliminar para la API FFM (Foreign Function & Memory), que permite la interacción de programas Java con código y datos externos mediante la llamada a funciones de bibliotecas externas y el acceso a memoria fuera de la JVM.
  • Se ha añadido soporte para flujos virtuales, que son flujos ligeros que simplifican considerablemente la escritura y el mantenimiento de aplicaciones multihilo de alto rendimiento.
  • Se ha propuesto la cuarta implementación preliminar de la API Vector, que proporciona funciones para cálculos vectoriales ejecutados mediante las instrucciones vectoriales de los procesadores x86_64 y AArch64, permitiendo aplicar operaciones simultáneamente a varios valores (SIMD). A diferencia de las capacidades de autovectorización de operaciones escalares proporcionadas por el compilador JIT HotSpot, la nueva API permite gestionar explícitamente la vectorización para el procesamiento paralelo de datos.
  • Se ha añadido una tercera implementación experimental de coincidencia de patrones en expresiones «switch», que permite utilizar en las etiquetas «case» no solo valores exactos, sino patrones flexibles que abarcan una serie de valores, para los cuales anteriormente era necesario usar cadenas engorrosas de expresiones «if…else». Object o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Se ha agregado una API experimental para el paralelismo estructurado, que simplifica el desarrollo de aplicaciones multihilo al tratar múltiples tareas ejecutadas en diferentes hilos como un solo bloque.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster