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.

Desarrollo