BookinglyTech News
Software

Java 27 activa por defecto los compact headers y jubila el recolector Serial

El JDK 27 llega con cuatro JEPs listos para producción y cinco en preview, sin romper compatibilidad y con varios valores por defecto que antes había que pedir a mano.

3 min de lecturaThe Register0 vistas

El JDK 27 ya está disponible. Es una release de corto plazo, sin soporte a largo plazo (LTS), construida sobre la especificación ya cerrada de Java 27, y trae cuatro JEPs listos para producción más otros cinco en preview. Ninguno obliga a tocar código existente. Lo que define a esta versión es que varias buenas prácticas que antes había que activar con flags ahora vienen activadas de fábrica.

"JDK 27 es la versión en la que Java deja de pedirte que te apuntes a los buenos valores por defecto y simplemente los enciende", resume el ingeniero de backend Arvind Kumar en su sitio Codefarm.

Cabeceras más pequeñas, por defecto

La JEP 534 convierte los compact object headers en el comportamiento estándar. Hasta ahora había que pedirlos explícitamente en la línea de comandos. La cabecera de un objeto Java ocupaba 96 bits en el heap y buena parte de ese espacio no se usaba jamás; el nuevo diseño la deja en 64. Cuatro bytes suenan a nada, pero multiplicados por millones de objetos vivos la cosa cambia: una ejecución sobre el benchmark SPECjbb2015 midió un 22% menos de espacio de heap y un 8% menos de tiempo de CPU.

El formato ya está rodado. Amazon mantiene cientos de servicios en producción con cabeceras compactas y SAP las ha puesto por defecto en SapMachine, su fork de OpenJDK. El diseño pequeño todavía reserva 4 bits para Project Valhalla, que quiere traer objetos de valor al lenguaje. El layout de 96 bits no desaparece: sigue ahí, pero ahora hay que reclamarlo con un flag.

G1 se come a Serial y el TLS mira a los cuánticos

La JEP 523 retira a Serial como recolector por defecto en entornos con recursos limitados y deja que el JVM elija G1. Serial era un recolector monohebra pensado para CPUs únicas y clientes con menos de 1.792 MB de memoria. Las mejoras acumuladas en G1 lo han dejado suficiente para todos esos casos, según los mantenedores. El cambio corrige además una situación incómoda: buena parte de las aplicaciones Java en contenedores llevaban años ejecutándose sobre Serial sin que nadie hubiera tomado esa decisión de forma consciente.

Otra novedad con la vista puesta más lejos es la JEP 527, que añade intercambio híbrido de claves post-cuántico sobre TLS 1.3. Java incorpora tres variantes nuevas que combinan el clásico ECDHE con el algoritmo ML-KEM del NIST, ofrecidas como opción junto a los mecanismos actuales. La motivación no es teórica: hay atacantes guardando sesiones cifradas con la idea de descifrarlas cuando tengan un ordenador cuántico útil.

La cuarta pieza lista para producción es la JEP 536, que hace que Java Flight Recorder redacte los datos sensibles antes de cerrar la grabación, en lugar de confiar en que nadie mire el fichero resultante.

Lo que viene

Entre las previews asoman constantes perezosas, tipos primitivos en patrones, concurrencia estructurada, un conjunto de objetos criptográficos y una API de vectores todavía en incubación. El equipo ya trabaja en Java 28, previsto para marzo de 2027, con una API JSON simple como proyecto en incubación y una revisión del recolector Shenandoah.

Para quien administra flotas de JVM la lectura práctica es sencilla: si hay aplicaciones en contenedores con memoria ajustada, conviene revisar con qué recolector están arrancando de verdad, porque a partir de ahora el reparto cambia solo. Y quien tenga que justificar una hoja de ruta de criptografía ya tiene en la mano la excusa para empezar a probar el intercambio híbrido antes de que sea urgente.