Lo nuevo de Java 10

Lo nuevo de Java 10 Oracle, Java noticias, desarrollo

JDK 10, una implementación de Java Standard Edition 10, se lanzó el 20 de marzo de 2018. Las mejoras clave incluyen tipos de variables locales y mejoras para la recolección y compilación de basura.

JDK 10 está programado para ser solo un lanzamiento a corto plazo, y las actualizaciones públicas para JDK 10 están programadas para finalizar en seis meses. El próximo JDK 11, previsto para septiembre, será una versión de soporte a largo plazo (LTS) de Java. Los lanzamientos de LTS vencen cada tres años.

Oracle ha establecido una cadencia de lanzamiento de seis meses para las versiones de Java.  Puedes descargar desde ya la esta nueva versión aquí.

Funciones nuevas y mejoradas en JDK 10

  • Inferencia del tipo de variable local, para mejorar el lenguaje Java y extender la inferencia del tipo a declaraciones de variables locales con inicializadores.
  • Recolección de basura paralela completa para el recolector de basura G1, para mejorar las latencias del peor de los casos.
  • Un compilador experimental Just-In-Time, Graal, se puede usar en la plataforma Linux / x64.
  • Conciencia de Docker. Cuando se ejecuta en sistemas Linux, la Máquina Virtual Java (JVM) sabrá si se está ejecutando en un contenedor Docker. La JVM extrae la información específica del contenedor (la cantidad de CPU y la memoria total asignada al contenedor) en lugar de consultar el sistema operativo. (El número de CPU disponibles para el proceso de Java se calcula a partir de conjuntos, participaciones o cuotas de procesadores especificados).
  • Tres nuevas opciones de JVM, para dar a los usuarios de contenedores Docker un mayor control sobre la memoria del sistema.
  • Una corrección de errores para corregir el mecanismo de adjuntar al intentar adjuntar desde un proceso de host a un proceso de Java que está en un contenedor Docker.
  • Tiempos de inicio más cortos para la herramienta jShell REPL, particularmente cuando un archivo de inicio con muchos fragmentos está en uso.
  • Nuevas API para habilitar mejor la creación de colecciones no modificables. Los métodos copyOf, Set.copyOf y Map.copyOf crean nuevas instancias de recopilación a partir de instancias existentes. Se agregaron nuevos métodos aUnDynamifiableList, aUnmodifiableSet y aUnDatosmodificables a la clase Recopiladores en el paquete Stream, lo que permite que los elementos de un Stream se recopilen en una colección no modificable.
  • Una interfaz limpia de recolector de basura para mejorar el aislamiento del código fuente de diferentes recolectores de basura. Los objetivos de este esfuerzo incluyen una mejor modularidad para el código interno de recolección de basura en la máquina virtual HotSpot y facilitar la incorporación de un nuevo recolector de basura a HotSpot.
  • Permitir que el compilador Just-In-Time basado en Java Grall se use de forma experimental en la plataforma Linux / x64.
  • Consolidación de los repositorios del bosque JDK en un único repositorio, para agilizar el desarrollo. La base de código hasta ahora se ha dividido en varios repositorios, lo que puede causar problemas con la administración del código fuente.
  • Uso compartido de datos de clases de aplicaciones, para reducir la huella compartiendo metadatos comunes de clase en todos los procesos. El tiempo de inicio también se mejora.
  • Threads-handshakes locales, para ejecutar una devolución de llamada en hilos sin realizar un safepoint VM global. Se pueden detener subprocesos individuales en lugar de todos los subprocesos o sin subprocesos.
  • Suministro de un conjunto predeterminado de certificados de autoridad de certificación raíz en el JDK. El objetivo es obtener certificados de raíz de código abierto en el programa Java SE Root CA de Oracle para hacer que las compilaciones de OpenJDK sean más atractivas para los desarrolladores.

Con el nuevo calendario de lanzamiento de seis meses, las funciones que se no están en una versión pueden demorarse hasta seis meses, cuando salga la próxima versión. Más allá de lo anunciado para JDK 10, Oracle no se ha comprometido a cuando alguna de las nuevas características propuestas estén realmente disponibles en Java.