Oracle anuncio la liberación de Java SE 15, conoce sus novedades
Después de seis meses de desarrollo, Oracle dio a conocer el lanzamiento de la nueva version de Java SE 15 como implementación de referencia que utiliza un proyecto de código abierto OpenJDK.
Java SE 15 se clasifica como una versión de soporte regular, con actualizaciones que se publicarán hasta la próxima versión. Java SE 11 debe usarse como la rama de soporte a largo plazo (LTS) y las actualizaciones se lanzarán hasta 2026. La rama anterior de Java 8 LTS será compatible hasta diciembre de 2020. El próximo lanzamiento de LTS está programado para septiembre de 2021.
Principales novedades de Java SE 15
En esta nueva version, se presenta una función de apoyo a la Firma EdDSA RFC 8032, la implementación propuesta de EdDSA no depende de plataformas de hardware, está protegida contra ataques de canal lateral (se garantiza un tiempo constante de todos los cálculos) y supera la implementación de ECDSA existente escrita en C en términos de rendimiento, con el mismo nivel de protección.
Otro cambio, es el soporte experimental para clases e interfaces «sealed» que no pueden ser utilizadas por otras clases e interfaces para heredar, extender o anular la implementación.
También se destaca en esta nueva version de Java SE 15 el soporte para clases ocultas que no pueden ser utilizadas directamente por el código de bytes de otras clases. El uso clave de las clases ocultas es para los marcos que generan clases dinámicamente en tiempo de ejecución y las usan indirectamente a través de la reflexión.
El recolector de basura ZGC (Z Garbage Collector) ha sido estabilizado y reconocido como listo para uso general. ZGC opera en modo pasivo para minimizar la latencia debida a la recolección de basura tanto como sea posible (el tiempo de parada cuando se usa ZGC no excede los 10 ms) y puede funcionar con montones pequeños y grandes, que varían en tamaño desde varios cientos de megabytes hasta muchos terabytes.
El recolector de basura Shenandoah se ha estabilizado y reconocido como ubicuo. Shenandoah es desarrollado por Red Hat y se destaca por el uso de un algoritmo que reduce los tiempos de pausa durante la recolección de basura al realizar la limpieza en paralelo con la ejecución de aplicaciones Java.
Además, también el soporte para bloques de texto se ha estabilizado e introducido en el idioma: una nueva forma de cadenas literales que permiten incluir datos de texto de varias líneas en el código fuente sin utilizar caracteres de escape y conservando el formato de texto original en el bloque.
Por otra parte la API de DatagramSocket heredada se ha reelaborado, ya que las antiguas implementaciones de java.net.DatagramSocket y java.net.MulticastSocket han sido reemplazadas por una implementación moderna que es más fácil de depurar y mantener, y es compatible con los hilos virtuales desarrollados por el proyecto Loom.
En caso de una posible violación de la compatibilidad con el código existente, la implementación anterior no se ha eliminado y se puede activar usando la opción jdk.net.usePlainDatagramSocketImpl.
Además, se propone una segunda implementación experimental de coincidencia de patrones en el operador «instanceof», que permite definir inmediatamente una variable local para acceder al valor verificado.
Finalmente, también se destaca la propone una segunda implementación experimental de la palabra clave «record» que proporciona una forma compacta para las definiciones de clases, evitando la necesidad de definir explícitamente varios métodos de bajo nivel como equals(), hashCode() y toString(), en los casos en que los datos se almacenan solo en campos.
Finalmente otros de los cambios que se destacan:
- Se propone un segundo borrador de API de acceso a memoria externa
- Se desactivó y desaprobó la técnica de optimización Biased Locking utilizada por HotSpot JVM para reducir la sobrecarga de bloqueo.
- Activación RMI del mecanismo obsoleto declarado, que se eliminará en una versión futura.
- Se eliminó el motor de JavaScript Nashorn, que estaba en desuso en Java SE 11.
- Puertos eliminados para el sistema operativo Solaris y los procesadores SPARC (Solaris/SPARC, Solaris/x64 y Linux/SPARC).
Si quieres conocer mas al respecto sobre esta nueva version. Puedes consultar los detalles en el siguiente enlace.