JDK 25: Mejora del rendimiento de String mediante el plegado constante del código hash

2025-05-02

JDK 25 mejora significativamente el rendimiento de la clase String al permitir el plegado constante de la función String::hashCode. Esto produce mejoras sustanciales en la velocidad, especialmente cuando se utilizan Strings como claves en Maps estáticos e inmutables, como en un escenario donde se accede a MethodHandles para llamadas nativas a través de claves String. Las pruebas de rendimiento muestran una mejora de más de 8 veces. Esta optimización se logra marcando el campo interno String.hash con la anotación @Stable. Esto permite a la JVM almacenar en caché y reutilizar el código hash, evitando el recálculo para códigos hash distintos de cero. Si bien un código hash cero puede dificultar esta optimización, se espera una corrección en el futuro.

Leer más
Desarrollo

Inmersión profunda en el inicio de la JVM

2025-01-09

Billy Korando, del equipo Java de Oracle, publicó un artículo detallado el 9 de enero de 2025, explorando los entresijos del inicio de la JVM. El artículo ofrece una visión detallada de los mecanismos internos de inicialización de la JVM, proporcionando información valiosa para los desarrolladores de Java. Se recomienda a los lectores que consulten la descripción del vídeo para obtener más información.

Leer más
Desarrollo Inicio

Valhalla: La Reestructuración Épica de Java se Acerca a su Finalización

2024-12-17

Después de una década de trabajo, el Proyecto Valhalla, la ambiciosa reestructuración de Java, se acerca a su finalización. Con el objetivo de cerrar la brecha entre clases y primitivos, Valhalla introduce clases de valor que ofrecen la comodidad de codificación de las clases con el rendimiento de los primitivos, lo que resulta en un diseño de memoria plano y compacto. En Devoxx 2024, el arquitecto de lenguaje Java Brian Goetz ofreció una actualización completa, destacando características clave como clases de valor, tipos con restricción de nulos, análisis de asignación definida mejorado e inicialización estricta.

Leer más
Desarrollo Clases de Valor