Oracle anuncia Java 16, la cual ofrece 17 mejoras, aplicadas al lenguaje Java, herramientas, gestión de la memoria y funciones de incubación y visualización.
Anuncio de Oracle sobre la nueva versión de Java
Oracle anuncia la disponibilidad de Java 16 (Oracle JDK 16), incluidas 17 nuevas mejoras en la plataforma enfocadas a la productividad de los desarrolladores.
El último Java Development Kit (JDK) han finalizado Pattern Matching for instanceof (JEP 394) y Records (JEP 395), mejoras de lenguaje que se vieron en Java 14.
Además, los desarrolladores pueden utilizar la nueva Packaging Tool (JEP 392) para enviar aplicaciones Java autónomas, así como explorar tres funciones de incubación, Vector API (JEP 338), Foreign Linker API (JEP 389) y Foreign-Memory Access API (JEP 389), y una función de vista previa, Sealed Classes (JEP 397).
Oracle informó que proporciona actualizaciones de Java cada seis meses para proporcionar a los desarrolladores un calendario de lanzamiento predecible.
“El poder de la cadencia de lanzamiento de seis meses se ha puesto de manifiesto en el lanzamiento más reciente”, dijo Georges Saab, vicepresidente de desarrollo de Java Platform Group de Oracle.
“La concordancia de patrones y los registros se introdujeron hace un año como parte de JDK 14 y desde entonces han pasado por varias rondas de comentarios de la comunidad basados en aplicaciones del mundo real”, agergó.
El lanzamiento de Java 16 incluye revisión abierta, compilaciones semanales y colaboración entre ingenieros de Oracle y miembros de la comunidad mundial de desarrolladores de Java a través de la Comunidad OpenJDK y el Proceso de la Comunidad Java.

Nuevas funciones de Java
Las nuevas funciones de Java son:
JEP 394: Pattern Matching for instanceof
Mejora el lenguaje de programación Java con coincidencia de patrones para el operador instanceof.
JEP 395: Records
Mejora el lenguaje de programación Java con registros, que son clases que actúan como portadores transparentes de datos inmutables. Los registros pueden considerarse tuplas nominales.
JEP 392: Packaging Tool
Proporciona la herramienta jpackage para empaquetar aplicaciones Java autónomas
JEP 387: Elastic Metaspace
Devuelve la memoria de metadatos de clase HotSpot no utilizada (por ej., metaespacio) al sistema operativo rápidamente, reduce la presencia del metaespacio y simplifica el código de metadatos para reducir los costos de mantenimiento.
JEP 376: ZGC: Concurrent Thread-Stack Processing
Traslada el procesamiento de pila de subprocesos ZGC desde puntos seguros a una fase concurrente. Este trabajo elimina el último obstáculo para permitir el procesamiento simultáneo de pilas.
JEP 380: UNIX-Domain Socket Channels
Añade soporte para las características de los sockets de dominio UNIX que son comunes en las principales plataformas UNIX y Windows para las API de canales de sockets y canales de sockets de servidor en el paquete java.nio.channels.
Los sockets de dominio UNIX se utilizan para la comunicación entre procesos (IPC) en el mismo host. Son similares a los sockets TCP / IP en muchos aspectos, excepto que se direccionan por nombres de ruta del sistema de archivos en lugar de direcciones de Protocolo de Internet (IP) y números de puerto.
JEP 396: Encapsula las partes internas del JDK de forma predeterminada
En JDK 9 se encapsulaban nuevos elementos internos de API, limitando el acceso a ellos.
Sin embargo, como ayuda para la migración, JDK 9 optó por no encapsular fuertemente en tiempo de ejecución el contenido de los paquetes que existían en JDK 8.
JDK 16 refuerza esta restricción al encapsular la mayoría de los elementos internos del JDK de forma predeterminada, excepto para API internas críticas como sun.misc.Unsafe.
Los usuarios finales aún pueden elegir la encapsulación fuerte y relajada que ha sido la predeterminada desde JDK 9. Con esto se espera que los desarrolladores puedan migrar desde el uso de elementos internos a usar APIs estándar, para que, tanto ellos como sus usuarios, puedan actualizar futuras versiones de Java.
JEP 390 Avisos para clases value-based
Designa las clases de empaquetamiento primitivas como value-based y desaprueba sus constructores para que sean eliminados, provocando nuevas advertencias de desaprobación.
Proporciona advertencias sobre intentos incorrectos de sincronizar instancias de cualquier clase value-based en la plataforma Java.
JEP 338: Vector API (Incubator)
Proporciona una iteración inicial de un módulo de incubadora, jdk.incubator.vector, para expresar cálculos vectoriales que se compilan en tiempo de ejecución para obtener instrucciones de hardware vectorial en arquitecturas de CPU compatibles.
JEP 389: Foreign Linker API (Incubator)
Introduce una API que ofrece acceso estático similar a Java al código nativo.
JEP 393: Foreign-Memory Access API (Third Incubator)
Introduce una API para permitir que los programas Java accedan a la memoria externa fuera de la pila de Java.
JEP 397: Sealed Classes (Second Preview)
Mejora el lenguaje de programación Java con clases e interfaces selladas. Las clases e interfaces selladas restringen qué otras clases o interfaces pueden extenderlas o implementarlas.
JEP 347: Habilite las funciones del lenguaje C ++ 14 (en el código fuente de JDK)
Permite el uso de las funciones del lenguaje C ++ 14 en el código fuente de JDK C ++ y proporciona una guía específica sobre cuáles de estas funciones se pueden utilizar en el código HotSpot.
JEP 357: Migrar de Mercurial a Git
Migra los repositorios de código fuente de la comunidad OpenJDK de Mercurial (hg) a Git.
JEP 369: Migrar a GitHub
Aloja los repositorios Git de la comunidad OpenJDK en GitHub. Los nuevos puertos brindan soporte para Java en más plataformas
JEP 386: Puerto de Alpine Linux
Adapta el JDK a Alpine Linux y a otras distribuciones de Linux que usan musl como su biblioteca C principal, en las arquitecturas x64 y AArch64.
JEP 388: Puerto Windows/Aarch64
Puertos JDK para Windows/AArch64.
Suscripción Oracle Java SE
Con el objetivo de que la suscripción de Oracle Java SE sea más valiosa para los clientes, Oracle ha añadido GraalVM Enterprise como un derecho.
GraalVM busca ayudar a mejorar el rendimiento y reducir el consumo de recursos de las aplicaciones, especialmente en microservicios y arquitecturas nativas de la nube.
Las organizaciones que administran sus propiedades de Java aprovechando la suscripción a Oracle Java SE pueden obtener mejoras y acceso directo a los expertos en Java de Oracle, y ahorros con respecto a otros enfoques.
“En lugar de interesarme cada tres o cuatro años por las novedades de Java, esta cadencia me mantiene activo como un desarrollador, profesor y formador apasionado”, dijo José Paumard, profesor asistente de la Sorbonne Paris Nord University y coorganizador del Paris Java Grupo de usuario.
Leíste: Oracle anuncia Java 16, te recomendamos: Celebra Java aniversario con webinar de programación
Síguenos en nuestras redes sociales: