De Java 9 a Java 11: Lo más destacado en cada versión
Java 9 (septiembre 2017)
No es
LTS
, pero fue una versión muy importante por los siguientes cambios:
- 1. Sistema de Módulos (Project Jigsaw)
- Introducción del sistema de módulos (module-info.java).
- Mejora la encapsulación, permite dividir el JDK en módulos.
- Permite a las aplicaciones definir qué partes del código exponen o requieren.
module com.ejemplo.miapp { requires java.base; }
- 2. JShell (REPL)
- Nueva herramienta interactiva de línea de comandos.
- Permite probar fragmentos de código Java sin necesidad de compilar clases.
- 3. API Stream mejorada
- Nuevos métodos:
takeWhile()
,dropWhile()
,ofNullable()
, etc.
- Nuevos métodos:
- 4. Interface privada en métodos
- Métodos privados en interfaces, útil para compartir lógica entre métodos default o static.
Java 10 (marzo 2018)
También no LTS, pero con una novedad destacada:
- 1. var – Inferencia de tipo local
- Permite declarar variables con inferencia de tipo a nivel local.
var lista = new ArrayList<String>();
- Mejora la legibilidad
- Solo se puede usar en variables locales, no en parámetros o atributos
- 2. Recolección de basura experimental (G1 mejoras)
- Mejoras en el recolector G1 GC (mejor administración de memoria).
- 3. API de colecciones inmutables mejorada
- Posibilidad de copiar fácilmente colecciones usando métodos
copyOf()
enList
,Set
, yMap
.
- Posibilidad de copiar fácilmente colecciones usando métodos
Java 11 (septiembre 2018) – LTS
Versión LTS (Long-Term Support) — sucesora oficial de Java 8 para muchos entornos de producción.
- 1. Nuevas funciones del lenguaje
var
en parámetros de lambda:
lista.forEach((var item) -> System.out.println(item));
- 2. API HTTP Client (estable)
- El nuevo HttpClient (experimental en Java 9) ahora es estable.
HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.ejemplo.com")) .build(); HttpResponse<String> response = client.send(request, BodyHandlers.ofString());
- 3. Métodos útiles en String
-
isBlank()
,lines()
,repeat(n)
,strip()
,stripLeading()
,stripTrailing()
"Hola ".repeat(3); // Hola Hola Hola
-
- 4. Eliminación de APIs obsoletas
- Se eliminaron herramientas y módulos antiguos: Java EE y CORBA (como javax.xml.bind, javax.activation, etc.)
- 5. Nuevo recolector de basura: ZGC (experimental)
- ZGC (Z Garbage Collector), un recolector de baja latencia, escalable.
Resumen
Versión | Estado | Novedades Clave |
---|---|---|
Java 9 | No LTS | Sistema de módulos, JShell, mejoras en Stream |
Java 10 | No LTS | var para variables locales, mejoras en GC |
Java 11 | LTS | HttpClient, mejoras en String, var en lambdas, eliminación de Java EE |
No hay comentarios:
Publicar un comentario