JAVA 16/ORACLE: DISPONIBLE

Diecisiete mejoras incluye Java 16 (Oracle JDK 16) para la productividad de los desarrolladores, informó Oracle al anunciar la disponibilidad de la herramienta.

Agregó que 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:

Mejoras del lenguaje

–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.

Oracle releases Java 16 with 17 new enhancements | ZDNet

Herramienta para la productividad

–JEP 392: Packaging Tool: proporciona la herramienta jpackage para empaquetar aplicaciones Java autónomas

Gestión de memoria

–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

–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. 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.

Oracle: Programming language Java 14 is out with these 16 major feature  improvements – TahuTek

Abordar el código incompatible con el futuro

–JEP 396: Encapsula fuertemente las partes internas del JDK de forma predeterminada: En JDK 9 se encapsulaban fuertemente nuevos elementos internos de API, limitando el acceso a ellos. Sin embargo, como ayuda para la migración, JDK 9 optó deliberadamente 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. Esto alentará a los desarrolladores a migrar desde el uso de elementos internos a usar APIs estándar, para que, tanto ellos como sus usuarios, puedan actualizar sin problemas a 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.

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 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.

Nuevos puertos, 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.

FUENTE: https://esemanal.mx/2021/03/disponible-java-16-de-oracle/

Otras entradas que pueden interesarte

Mauricio Valderrama Escrito por:

2 comentarios

  1. Rodrigo
    28 marzo, 2021
    Responder

    Excelente actualización de Java.

  2. Gerardo
    28 marzo, 2021
    Responder

    Magnificas actualizaciones, que buen contenido.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *