Java SE 16

Java SE JDK 16.0.1 – Descargar gratis

0
(0)

El JDK es el kit de desarrollo de Java, el SDK con todas las funciones para Java. Tiene todo lo que tiene el JRE, pero también el compilador (javac) y herramientas (como javadoc y jdb). Es capaz de crear y compilar programas.

El nuevo Acuerdo de licencia de Oracle Technology Network para Oracle Java SE es sustancialmente diferente de las licencias anteriores de Oracle JDK. La nueva licencia permite ciertos usos, como el uso personal y el uso de desarrollo, sin costo alguno, pero es posible que otros usos autorizados bajo licencias anteriores de Oracle JDK ya no estén disponibles.

A veces, incluso si no planea realizar ningún desarrollo de Java en una computadora, aún necesita el JDK instalado. Por ejemplo, si está implementando una aplicación web con JSP, técnicamente solo está ejecutando programas Java dentro del servidor de aplicaciones. Entonces, ¿por qué necesitarías el JDK? Porque el servidor de aplicaciones convertirá JSP en servlets Java y necesita usar el JDK para compilar los servlets.

Qué hay de nuevo:

Estas notas describen cambios importantes, mejoras, API y funciones eliminadas, API y funciones obsoletas y otra información sobre JDK 16 y Java SE 16. En algunos casos, las descripciones proporcionan enlaces a información detallada adicional sobre un problema o un cambio. Esta página no duplica las descripciones proporcionadas por la Especificación de plataforma Java SE 16 (JSR 391), que proporciona antecedentes informativos para todos los cambios de especificación y también puede incluir la identificación de API eliminadas o obsoletas y características que no se describen aquí.

Nuevas características

Esta sección describe algunas de las mejoras en Java SE 16 y JDK 16. En algunos casos, las descripciones proporcionan enlaces a información adicional detallada sobre un problema o un cambio. Las API que se describen aquí son las que se proporcionan con Oracle JDK. Incluye una implementación completa de la plataforma Java SE 16 y API de Java adicionales para respaldar el desarrollo, la depuración y la supervisión de aplicaciones Java. Otra fuente de información sobre mejoras importantes y nuevas funciones en Java SE 16 y JDK 16 es la Especificación de la plataforma Java SE 16 (JSR 391), que documenta los cambios realizados en la especificación entre Java SE 15 y Java SE 16. Este documento incluye descripciones de esas nuevas características y mejoras que también son cambios en la especificación. Las descripciones también identifican posibles problemas de compatibilidad que puede encontrar al migrar a JDK 16.

JEP 396: encapsular fuertemente los componentes internos de JDK de forma predeterminada (JDK-8256299)

Encapsule firmemente todos los elementos internos del JDK de forma predeterminada, excepto las API internas críticas, como sun.misc.Unsafe. Permita que los usuarios finales elijan la encapsulación fuerte y relajada que ha sido la predeterminada desde JDK 9.

Con este cambio, el valor predeterminado de la opción del iniciador –ilegal-access ahora es denegar en lugar de permitir. Como consecuencia, el código existente que utiliza la mayoría de las clases, métodos o campos internos del JDK no se ejecutará. Se puede hacer que dicho código se ejecute en JDK 16 especificando –illegal-access = permit. Sin embargo, esa opción se eliminará en una versión futura.

Para obtener más detalles, consulte JEP 396.

JEP 390: Advertencias para clases basadas en valores (JDK-8249100)

Los usuarios de las clases basadas en valores proporcionadas por las bibliotecas estándar, incluidos los usuarios de las clases contenedoras primitivas, deben evitar confiar en la identidad de las instancias de clase. Se desaconseja enfáticamente que los programadores llamen a los constructores de la clase contenedora, que ahora están obsoletos para su eliminación. Las nuevas advertencias de javac desalientan la sincronización en instancias de clases basadas en valores. Las advertencias en tiempo de ejecución sobre la sincronización también se pueden activar mediante la opción de línea de comandos -XX: DiagnoseSyncOnValueBasedClasses.

Para obtener más detalles, consulte JEP 390.

JEP 389: API de vinculador externo (incubadora) (JDK-8249755)

Introduzca una API que ofrezca acceso a código nativo en Java puro y de tipo estático. Esta API, junto con la API de memoria externa (JEP 393), simplificará considerablemente el proceso de vinculación a una biblioteca nativa, que de otro modo sería propenso a errores.

Para obtener más detalles, consulte JEP 389.

JEP 393: API de acceso a memoria externa (tercera incubadora) (JDK-8253415)

Introduzca una API para permitir que los programas Java accedan de forma segura y eficiente a la memoria externa fuera del montón de Java.

Para obtener más detalles, consulte JEP 393.

Agregue el método InvocationHandler :: invokeDefault para la compatibilidad con el método predeterminado del proxy (JDK-8159746)

Se ha agregado un nuevo método, invokeDefault, a la interfaz java.lang.reflect.InvocationHandler para permitir que se invoque un método predeterminado definido en una interfaz proxy.

JEP 380: Sockets de dominio Unix (JDK-8238588)

Proporciona soporte para sockets de dominio Unix (AF_UNIX) en las clases java.nio.channels, SocketChannel y ServerSocketChannel. Consulte JEP-380 para obtener más información.

Consulte también la siguiente nota de la versión para obtener información sobre las limitaciones en la compatibilidad con Windows en JDK16.

Soporte de período de día agregado a los formatos java.time (JDK-8247781)

Se han agregado un nuevo patrón de formateador, la letra ‘B’, y su método de soporte a las clases java.time.format.DateTimeFormatter / DateTimeFormatterBuilder. El patrón y el método traducen los períodos de días definidos en CLDR del Consorcio Unicode (https://unicode.org/reports/tr35/tr35-dates.html#dayPeriods). Las aplicaciones ahora pueden expresar períodos en un día, como «por la mañana» o «por la noche», no solo am / pm. El siguiente ejemplo demuestra la traducción de los períodos del día:

DateTimeFormatter.ofPattern («B»). Formato (LocalTime.now ())

Este ejemplo produce texto de período de día según la hora del día y la ubicación.

Agregar método Stream.toList () (JDK-8180352)

Se ha agregado un nuevo método toList a la interfaz java.util.Stream. Esto introduce una posible incompatibilidad de origen con clases que implementan o interfaces que extienden la interfaz Stream y que también importan estáticamente un método toList desde otro lugar, por ejemplo, Collectors.toList. Las referencias a dichos métodos deben cambiarse para utilizar un nombre calificado en lugar de una importación estática.

Notas de la versión completas aquí.

Opciones de descarga:

  • Ventanas

  • Mac OS

  • Linux DEB

  • RPM de Linux

  • TAR.GZ de Linux

  • Linux ARM 64

¿Le ha parecido útil este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.