De Java 18 a Java 21: El Java más moderno que nunca
Con la cadencia de lanzamientos semestrales, Java sigue evolucionando de forma continua. Desde Java 18 en adelante, el lenguaje ha incorporado características experimentales muy esperadas, muchas de las cuales se están consolidando hacia futuras versiones LTS, como Java 21 (septiembre 2023).
Aquí te dejo un resumen versión por versión:
Java 18 (marzo 2022)
- 1. Simple Web Server
- Nuevo servidor HTTP embebido para desarrollo o testing.
$ jwebserver .
- 2. UTF-8 por defecto
- Java ahora usa UTF-8 como charset predeterminado.
Java 19 (septiembre 2022)
- 1. Virtual Threads (preview)
- Parte del
Project Loom
. - Hilos ligeros gestionados por la JVM. Enormemente escalables.
Thread.startVirtualThread(() -> { // Lógica concurrente sin bloqueos });
- Parte del
- 2. Pattern Matching para switch (preview)
- Posibilidad de usar patrones dentro de switch.
switch (obj) { case String s -> System.out.println("Cadena: " + s); case Integer i -> System.out.println("Entero: " + i); }
- 3. Structured Concurrency (incubadora)
- Mejora el manejo de tareas concurrentes jerárquicas.
Java 20 (marzo 2023)
- 1. Virtual Threads (2° preview)
- Continúa puliéndose esta función.
- 2. Record Patterns (preview)
- Desestructuración de records de forma elegante.
if (persona instanceof Persona(String nombre, int edad)) { System.out.println(nombre + " tiene " + edad); }
Java 21 (septiembre 2023) – LTS
Nueva versión LTS — Muy esperada por la comunidad.
- 1. Virtual Threads (¡estables!)
- Ya se puede usar en producción. Perfecto para apps altamente concurrentes como servidores web.
- 2. Pattern Matching para switch (estables)
- 3. Record Patterns (preview 3)
- 4. String Templates (preview)
- Forma avanzada de interpolar strings.
String nombre = "María"; String saludo = STR."Hola, \{nombre}!";
- 5. Sequenced Collections
- Nuevas interfaces SequencedCollection, SequencedSet, etc. para listas ordenadas.
Resumen
El trayecto de Java 12 a Java 17 fue clave para la modernización del lenguaje. Muchas características pasaron por ciclos de prueba antes de convertirse en estables. Java 17 representa una versión LTS madura, con soporte para programación más expresiva, concisa y moderna.
Versión | Estado | Novedades Clave |
---|---|---|
Java 18 | No LTS | UTF-8 por defecto, Simple Web Server |
Java 19 | No LTS | Virtual threads (preview), switch con patrones |
Java 20 | No LTS | Record patterns (preview), Virtual threads mejora |
Java 21 | LTS | Virtual threads estables, pattern matching, string templates (preview) |
No hay comentarios:
Publicar un comentario