Skip to content

Java 24

Posted on:23 de marzo de 2025 at 08:22

Java 24: Novedades y cambios

El 18 de marzo de 2025, fue lanzada la nueva version de Java con varias mejoras interesantes. Java 24 sigue la línea de evolución gradual que se ha adoptado en los últimos años. Esta versión introduce cambios que podrían afectar directamente la forma en que desarrollamos aplicaciones.

Vamos a revisar las novedades presentadas en Java 24, sus ventajas y algunos inconvenientes que nos afectan como desarrolladores.


🚀 Novedades Más Importantes en Java 24

Java 24 viene con varias JEPs (JDK Enhancement Proposals) que afectan tanto el rendimiento como la seguridad y la estructura del código. Estas son las más relevantes:

🔥 1. Generational Shenandoah (JEP 404 - Experimental)

Shenandoah es un recolector de basura (GC) concurrente que ha mejorado bastante en los últimos años. Ahora, Java 24 introduce su versión generacional, basada en la idea de que la mayoría de los objetos en la JVM tienen vida corta.

En pocas palabras, separa los objetos jóvenes de los viejos para hacer la recolección de basura más eficiente, lo que se traduce en menos pausas y mejor rendimiento en aplicaciones de alto tráfico.

Cómo activarlo:

java -XX:+UnlockExperimentalVMOptions -XX:ShenandoahGCMode=generational -jar miApp.jar

¿Vale la pena? Si usas estructuras con millones de objetos (colecciones grandes, microservicios con alto consumo de memoria), sí. Si no, puede que el beneficio no sea tan notorio.


🛑 3. Adiós a JNI… Poco a Poco (JEP 472)

Java se está preparando para limitar el uso de JNI (Java Native Interface) en futuras versiones. JNI permite que Java llame a código en C/C++, pero es un punto débil en términos de seguridad.

Si tu aplicación usa JNI para interactuar con librerías nativas, deberías empezar a buscar alternativas, como el Proyecto Panama.

Ejemplo de código JNI actual (pronto será obsoleto):

public class NativeLib {
    static {
        System.loadLibrary("mylib");
    }

    public native int calcular(int a, int b);
}

¿Vale la pena? Si dependes de JNI, debes empezar a buscar alternativas. Si no lo usas, no te afecta.


⏳ 4. Mejoras en G1 GC (JEP 475)

El recolector de basura G1 ahora optimiza mejor la expansión de barreras, lo que hace que su comportamiento sea más predecible y rápido en aplicaciones con cargas dinámicas.

Esto se traduce en mejor rendimiento sin tocar nada en tu código. Si ya usabas G1, esta mejora te beneficia automáticamente.


🔑 5. Nueva API para Derivación de Claves (JEP 478 - Vista Previa)

Java 24 introduce una API de derivación de claves, útil para cifrado y seguridad en general. Esto facilita la implementación de protocolos seguros sin necesidad de recurrir a bibliotecas de terceros.

Ejemplo de uso de la API:

import java.security.Key;
import java.security.KeyDerivationFunction;
import java.util.HexFormat;

public class KeyDerivationExample {
    public static void main(String[] args) throws Exception {
        var key = KeyDerivationFunction.PBKDF2.deriveKey("my-password".getBytes(), "mysalt".getBytes(), 10000, 32);
        System.out.println(HexFormat.of().formatHex(key.getEncoded()));
    }
}

¿Vale la pena? Sí, sobre todo si trabajas con seguridad y cifrado.


❌ Cambios que pueden afectarnos

No todo es maravilloso. Hay cambios que pueden romper compatibilidad o que requieren migración de código:

  1. Java ya no soporta Windows 32-bit x86 (JEP 479) → Si aún usas esta arquitectura, tendrás que actualizar.
  2. Adiós definitivo al Security Manager (JEP 486) → Si dependías de él para restringir permisos, tendrás que cambiar a otras soluciones de seguridad.
  3. Sincronización mejorada para Threads Virtuales (JEP 491) → Puede requerir ajustes en código que usa synchronized.

🔮 ¿Qué Sigue para Java?

Java sigue evolucionando en estas direcciones:

Más rendimiento: optimización de la memoria, mejor manejo de la concurrencia.
Menos código legado: eliminación de JNI y Security Manager.
Mejor seguridad: APIs de cifrado y restricción de código nativo.
Mejor GC: menos pausas, menor consumo de memoria.

Sin embargo, es claro que Java se está alejando de arquitecturas antiguas y adoptando cambios que pueden requerir migración de código en ciertos proyectos.


🏁 Conclusión: ¿Vale la Pena Java 24?

Si tu aplicación necesita rendimiento y seguridad, las mejoras en GC y memoria pueden hacer una diferencia notable. Sin embargo, si usas JNI, Security Manager o dependes de Windows 32-bit, tienes que planificar una migración.

Sin embargo, Java 24 es una actualización positiva, con cambios que apuntan a hacer la JVM más rápida y segura.


📚 Referencias y Recursos