JDK 25: Aumento de Desempenho da String por meio da Dobra Constante do Hash Code

2025-05-02

O JDK 25 melhora significativamente o desempenho da classe String permitindo a dobra constante da função String::hashCode. Isso resulta em ganhos de velocidade substanciais, especialmente quando Strings são usadas como chaves em Maps estáticos e imutáveis, como em um cenário onde MethodHandles para chamadas nativas são acessados ​​por meio de chaves String. Benchmarks mostram uma melhoria de mais de 8x. Essa otimização é alcançada marcando o campo interno String.hash com a anotação @Stable. Isso permite que a JVM armazene em cache e reutilize o código hash, evitando o recálculo para códigos hash diferentes de zero. Embora um código hash zero possa dificultar essa otimização, uma correção futura é esperada.

Desenvolvimento