Oracle anuncia la disponibilidad de Java 16 (Oracle JDK 16), incluidas 17 nuevas mejoras en la plataforma que optimizarán aún más 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 por primera vez 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 proporciona actualizaciones de Java cada seis meses para proporcionar a los desarrolladores un calendario de lanzamiento predecible. Esto ofrece un flujo constante de innovaciones, al tiempo que proporciona mejoras continuas en el rendimiento, la estabilidad y la seguridad, aumentando la difusión de Java en organizaciones y sectores de todos los tamaños.
«El poder de la cadencia de lanzamiento de seis meses se ha puesto de manifiesto en el lanzamiento más reciente. 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. Este proceso no solo ha dado a los desarrolladores de Java la oportunidad de probar estas funciones antes de que fueran finalizadas, sino que también han incorporado comentarios críticos que dieron como resultado dos JEP sólidos que realmente satisfacen las necesidades de la comunidad «, dijo Georges Saab, vicepresidente de desarrollo de Java Platform Group de Oracle.
El lanzamiento de Java 16 es el resultado de un desarrollo en toda la industria que incluye revisión abierta, compilaciones semanales y una amplia 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.
Las nuevas funciones de Java 16 son:
Mejoras del lenguaje introducidas por primera vez en JDK 14 y finalizadas en JDK 16
- JEP 394: Pattern Matching for instanceof: mejora el lenguaje de programación Java con coincidencia de patrones para el operador 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.
Nueva herramienta para mejorar la productividad de los desarrolladores
- JEP 392: Packaging Tool: proporciona la herramienta jpackage para empaquetar aplicaciones Java autónomas
Gestión de memoria mejorada para optimizar el desempeño
- JEP 387: Elastic Metaspace: devuelve la memoria de metadatos de clase HotSpot no utilizada (por ej., metaespacio) al sistema operativo más 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 significativo para permitir el procesamiento simultáneo de pilas.
Redes optimizadas para mejorar la productividad y flexibilidad de los desarrolladores
- JEP 380: UNIX-Domain Socket Channels: añade soporte para todas 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.
Funciones de incubación y visualización
- 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 de forma confiable en tiempo de ejecución para obtener excelentes 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 de manera segura y eficiente 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.
Mejoras para los contribuyentes de OpenJDK
- 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.
Mejorando constantemente Java
Java sigue siendo una de las plataformas de desarrollo más exitosas de la historia, basada en la innovación continua para satisfacer las necesidades cambiantes de los desarrolladores de aplicaciones modernas. Para que la suscripción de Oracle Java SE sea aún más valiosa para los clientes, Oracle ha añadido GraalVM Enterprise como un derecho. GraalVM puede ayudar a mejorar el rendimiento y reducir el consumo de recursos de las aplicaciones, especialmente en microservicios y arquitecturas nativas de la nube.
Los desarrolladores pueden aprender más sobre Java 16 y adquirir experiencia práctica con Oracle Developer Live: Java Innovations el 23, 25 y 30 de marzo.