🚀 Novedades de Java 24 para Desarrolladores: Lenguaje, Librerías, Rendimiento y Más


Java 24 llegó en marzo de 2025 como una versión de corto plazo (no LTS), pero viene cargada de novedades útiles para el día a día de cualquier desarrollador Java. Desde mejoras de lenguaje hasta librerías optimizadas y herramientas para programación concurrente moderna.
En este artículo te hago un resumen claro y útil de lo más destacado. ☕
🧪 ¿Qué es una versión no-LTS?
Java 24 no es LTS (soporte de largo plazo), lo cual significa que está pensada para probar y adoptar nuevas características.
💡 Java 21 fue la última LTS (septiembre 2023)
🔮 Java 25 será la siguiente (septiembre 2025)
📦 Categorías de novedades en Java 24
- ✨ Lenguaje: mejoras de sintaxis y estructura
- 📚 API y librerías core
- ⚙️ Rendimiento y JVM
- 🔐 Seguridad
✨ 1. Características del Lenguaje
🔹 JEP 488 – Pattern Matching con tipos primitivos
Ahora puedes hacer instanceof
o switch
directamente con int
, double
, etc.
Object valor = 42;
if (valor instanceof int i) {
System.out.println("Es entero: " + i);
}
Esto mejora la legibilidad y evita castings manuales.
🔹 JEP 492 – Cuerpo de Constructores Flexibles
Puedes poner lógica antes del super()
:
class Alumno extends Persona {
Alumno(String nombre) {
if (nombre == null || nombre.isBlank()) throw new IllegalArgumentException();
super(nombre);
}
}
🔹 JEP 494 – Importaciones de Módulos
¿Cansado de mil import
? Ahora puedes importar un módulo completo:
import module java.sql;
public class Ejemplo {
public static void main(String[] args) {
System.out.println("Funciona sin importar clases individuales!");
}
}
Ideal para proyectos no modularizados.
🔹 JEP 495 – Archivos fuente simples y main
de instancia
¡No más public static void main
obligatorio!
void main() {
System.out.println("Hola mundo desde Java 24");
}
Se ejecuta con:
java --enable-preview --source 24 Hola.java
📚 2. Mejora en APIs y Librerías
🔹 JEP 485 – Stream Gatherers (nueva joya 💎)
Antes: agrupar elementos en lotes era un lío.
Ahora:
names.stream()
.gather(Gatherers.windowFixed(3))
.forEach(System.out::println);
Funciona como map
, pero para operaciones más complejas, manteniendo la pereza (laziness
) del stream.
🔹 JEP 484 – API para archivos .class
Inspecciona y transforma bytecode fácilmente:
ClassFile classFile = ClassFile.read(Files.readAllBytes(Path.of("MiClase.class")));
classFile.methods().forEach(m -> System.out.println(m.name()));
No más depender de ASM o ByteBuddy.
🔹 JEP 487 – Scoped Values (mejor que ThreadLocal)
Ideal para datos inmutables por hilo (como un ID de transacción):
Carrier scope = ScopedValue.where(ID, "txn-123");
scope.run(() -> {
System.out.println("Usando ID: " + ID.get());
});
⚙️ 3. Mejoras en JVM y Rendimiento
🔹 JEP 483 – Carga anticipada de clases
Acelera el arranque de apps Java (hasta 40% más rápido) con un cache previo.
Perfecto para microservicios y funciones serverless.
🔹 JEP 491 – synchronized
sin "pinning" en hilos virtuales
Ahora puedes usar bloques sincronizados sin bloquear el hilo físico.
synchronized (lock) {
procesar();
}
Escala mucho mejor con millones de hilos virtuales.
🔹 JEP 450 – Encabezados de objetos compactos
Reduce el uso de memoria por objeto.
🔽 Ahorra hasta 8 bytes por objeto
🧠 Ideal para apps con millones de instancias
🧠 4. Criptografía Resistente a Cuántica
JEPs 478, 496, 497 introducen algoritmos criptográficos resistentes a ataques cuánticos.
Pensado para el futuro... pero ya disponible en Java 24 🔐
🏁 Conclusión
Java 24 no es una LTS, pero trae muchas mejoras útiles para probar hoy mismo.
Ya sea que trabajes con streams, módulos, concurrencia o criptografía, Java 24 te da superpoderes sin reinventar la rueda.
Subscribe to my newsletter
Read articles from Carlos Exposito directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
