Java 24: Stream Gatherers, Class-File API e hilos virtuales sin pinning
JDK 24 salió el 18 de marzo de 2025 con 24 JEPs. Stream Gatherers y la Class-File API pasan a definitivas, synchronized deja de anclar los hilos virtuales y el Security Manager queda desactivado para siempre.
JDK 24 alcanzó la disponibilidad general el 18 de marzo de 2025 con 24 JEPs.
Stream Gatherers (JEP 485)
Stream::gather permite escribir operaciones intermedias propias, igual que collect permite escribir terminales. java.util.stream.Gatherers trae algunas hechas, como las ventanas de tamaño fijo:
List<List<Integer>> grupos = Stream.of(1, 2, 3, 4, 5, 6, 7)
.gather(Gatherers.windowFixed(3))
.toList();
// [[1, 2, 3], [4, 5, 6], [7]]Hilos virtuales sin pinning en synchronized (JEP 491)
Hasta Java 23, un hilo virtual que se bloqueaba dentro de un bloque synchronized quedaba anclado a su hilo de plataforma. Desde Java 24 ya no: puede soltarlo y dejar que otro hilo virtual lo use. Mucho código existente escala mejor con hilos virtuales sin tocarlo.
Más finales
- JEP 484 — Class-File API, para leer, generar y transformar ficheros
.class. - JEP 486 — el Security Manager queda desactivado de forma permanente.
- JEP 483 — carga y enlazado de clases Ahead-of-Time, para arrancar antes.
- JEP 496 y 497 — ML-KEM y ML-DSA, algoritmos resistentes a la computación cuántica.
- JEP 490 — ZGC elimina el modo no generacional.
- JEP 498 — avisos al usar los métodos de acceso a memoria de
sun.misc.Unsafe. - JEP 472 — preparación para restringir el uso de JNI.
En preview
Scoped Values (cuarta), tipos primitivos en patrones (segunda), constructores flexibles (tercera), imports de módulo (segunda), ficheros fuente simples con main de instancia (cuarta), Structured Concurrency (cuarta) y la API de derivación de claves.
En NextPatch
La ruta Java 23 → 24 cubre gatherers, la Class-File API y los avisos de integridad.