JDK 25 : Amélioration des performances de String grâce au pliage constant du code de hachage
JDK 25 améliore considérablement les performances de la classe String en permettant le pliage constant de la fonction String::hashCode. Cela entraîne des gains de vitesse substantiels, notamment lorsque les Strings sont utilisées comme clés dans des Maps statiques et immuables, comme dans un scénario où des MethodHandles pour les appels natifs sont accessibles via des clés String. Les benchmarks montrent une amélioration de plus de 8x. Cette optimisation est obtenue en marquant le champ interne String.hash avec l'annotation @Stable. Cela permet à la JVM de mettre en cache et de réutiliser le code de hachage, évitant le recalcul pour les codes de hachage non nuls. Bien qu'un code de hachage nul puisse entraver cette optimisation, un correctif futur est prévu.
Lire plus