Java 9 Nuevas características
Java 9 fue lanzado el 22 de septiembre de 2017 y trajo muchas características nuevas, siendo el cambio más importante el sistema de módulos ya implementado. A continuación, presentaremos en detalle las nuevas características de Java 9.
Java 9 Nuevas características
- Sistema de módulos: El módulo es un contenedor de paquetes; uno de los mayores cambios de Java 9 es la introducción del sistema de módulos (proyecto Jigsaw).
- REPL (JShell): Entorno de programación interactivo.
- Cliente HTTP 2: El estándar HTTP/2 es la última versión del protocolo HTTP; la nueva API HTTPClient admite WebSocket, flujos HTTP/2 y la función de empuje del servidor.
- Javadoc mejorado: Javadoc ahora admite búsquedas en los documentos de la API. Además, la salida de Javadoc ahora cumple con el estándar compatible con HTML5.
- Paquete JAR de múltiples versiones compatible: La función de JAR de múltiples versiones te permite crear versiones de clases que se seleccionan solo cuando se ejecuta el programa en entornos Java de versiones específicas.
- Métodos de fábrica de colecciones: En las interfaces List, Set y Map, los nuevos métodos de fábrica estáticos pueden crear instancias inmutables de estas colecciones.
- Métodos privados en interfaces: Utilizar métodos privados en interfaces. Podemos usar el modificador de acceso private para escribir métodos privados en las interfaces.
- API de procesos: API mejorada para controlar y gestionar los procesos del sistema operativo. Introduce java.lang.ProcessHandle y su interfaz anidada Info para evitar que los desarrolladores tengan que recurrir a código nativo a menudo solo para obtener el PID de un proceso local.
- API Stream mejorada: La API Stream mejorada agrega algunos métodos convenientes que hacen que el procesamiento de flujos sea más fácil y permiten escribir consultas complejas con colectores.
- try-with-resources mejorado: Si ya tienes un recurso que es final o equivalente a una variable final, puedes usar esa variable en la sentencia try-with-resources sin tener que declarar una nueva variable en ella.
- Anotación @Deprecated mejorada: La anotación @Deprecated puede marcar el estado de la API de Java, puede indicar que la API marcada será eliminada o que ya está rota.
- Operador diamante (Diamond Operator) mejorado: Las clases anónimas pueden usar el operador diamante (Diamond Operator).
- Clase Optional mejorada: java.util.Optional agrega muchos métodos útiles nuevos. Optional puede convertirse directamente a stream.
- API de imágenes de múltiples resoluciones: Se define una API de imágenes de múltiples resoluciones, con la que los desarrolladores pueden manipular y mostrar fácilmente imágenes de distintas resoluciones.
- API CompletableFuture mejorada: El mecanismo asíncrono de la clase CompletableFuture puede ejecutar operaciones cuando el método ProcessHandle.onExit finaliza.
- API JSON ligera: Se incluye una API JSON ligera integrada.
- API de flujos reactivos (Reactive Streams): Java 9 introduce una nueva API de flujos reactivos para admitir la programación reactiva en Java 9.
Puedes consultar más características nuevas en el sitio web oficial:What's New in JDK 9
Dirección de descarga de JDK 9:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-doc-downloads-3850606.html
En los ejemplos de artículos sobre Java 9, todos usamos el entorno jdk 1.9. Puedes usar el siguiente comando para ver la versión actual de jdk:
$ java -version java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+163) Java HotSpot(TM) 64-Bit Server VM (build 9-ea+163, mixed mode)A continuación, presentaremos en detalle las nuevas características de Java 9: