Miro con nostalgia mis tiempos mozos donde actualicé de Java 4 a Java 5 y la emoción que significaba ese tipo de actualizaciones. Ahora, ya abuelo en esto, mis emociones no son las mismas y ya no corro a poner la nueva versión de Java para disfrutar de esas promesas que se hemos leído estos meses atrás y más cuando no estamos ante una versión LTS, de esas que nos encanta poner en producción.
Igualmente, tenemos cosas nuevas ¿el qué? Sigan leyendo.
JEP 517: HTTP/3 para el HTTP Client
Por fin. Los navegadores y servidores llevan tiempo pegándose con HTTP/3 y ya iba siendo hora de que el cliente nativo de Java se uniera a la fiesta. Si usas HttpClient, ahora vas a tener soporte para QUIC y todas esas ventajas de rendimiento en redes poco estables. No es algo que vayas a notar si tu backend está en la misma red local, pero para microservicios que hablan entre nubes, es una alegría.
JEP 500: Preparando el camino para que «final» sea «final» de verdad
Aviso a navegantes y a los amantes de la magia negra: se acabó lo de usar reflexión profunda para cambiar el valor de un campo final. El JDK 26 empieza a lanzar avisos serios si intentas hacer estas guarradas. La idea es que en el futuro el compilador pueda optimizar a muerte sabiendo que un final no va a cambiar nunca, pase lo que pase. Si tu framework de confianza hace cosas raras por debajo, prepárate para ver algún que otro log en rojo.
JEP 526: Constantes perezosas (Lazy Constants)
Llega StableValue en su segunda preview. La idea es sencilla: campos que solo se calculan cuando se necesitan por primera vez, pero que una vez inicializados el JVM los trata como constantes puras. Menos código repetitivo para implementar el patrón lazy loading y más rendimiento porque el JIT puede hacer sus virguerías sabiendo que ese valor ya no se mueve.
JEP 530: Tipos primitivos en patrones (Cuarta Preview)
Seguimos puliendo el switch y el instanceof. Ahora ya puedes meter tipos primitivos (int, double, etc.) en los patrones sin tener que andar haciendo cast manuales o boxing innecesario. Java se está volviendo muy uniforme en esto, y la verdad es que el código queda mucho más limpio.
if (objeto instanceof int i) {
System.out.println("Es un entero: " + i);
}
Parece una tontería, pero cuando llevas diez de estos seguidos, se agradece no tener que escribir código de más.
JEP 529: Vector API (11ª Incubator)
Sí, habéis leído bien: la undécima. La API de vectores sigue ahí, mejorando, pero sin terminar de salir de la incubadora. Es fundamental para temas de IA y cálculos pesados, pero parece que el equipo de desarrollo quiere estar 200% seguro antes de hacerla fija. Algún día saldrá, fe ciega.
JEP 504: Adiós definitivo a los Applets
Esto estaba deprecadísimo. Si todavía tienes algún sistema corriendo con Applets (espero que no, por tu salud mental), que sepas que el API ya ha sido borrado del mapa. Es el fin de una era, de aquel Java de los 90 que quería vivir en el navegador. Cerramos la puerta al salir y tiramos la llave al mar.
Bueno, pues eso. El JDK 26 no es una versión para tirar cohetes, pero es que Java ya no necesita eso. Es una actualización de pulir lo que ya hay, preparar el terreno para lo que viene (Valhalla, te seguimos esperando) y quitarse de encima lastre del siglo pasado.
Por aquí la Release Notes con todas las novedades.
