JDK 25: String-Performanceverbesserung durch konstantes Falten des Hashcodes

2025-05-02

JDK 25 verbessert die Performance der String-Klasse deutlich, indem es das konstante Falten der Funktion String::hashCode ermöglicht. Dies führt zu erheblichen Geschwindigkeitsverbesserungen, insbesondere wenn Strings als Schlüssel in statischen, unveränderlichen Maps verwendet werden, beispielsweise wenn MethodHandles für native Aufrufe über String-Schlüssel aufgerufen werden. Benchmarks zeigen eine Verbesserung um mehr als das 8-fache. Diese Optimierung wird erreicht, indem das interne Feld String.hash mit der Annotation @Stable markiert wird. Dies ermöglicht es der JVM, den Hashcode zu cachen und wiederzuverwenden und so die Neuberechnung für nicht-null Hashcodes zu vermeiden. Obwohl ein Null-Hashcode diese Optimierung behindern kann, wird eine zukünftige Korrektur erwartet.

Mehr lesen
Entwicklung

Tieftauchen in den JVM-Start

2025-01-09

Billy Korando vom Java-Team von Oracle veröffentlichte am 9. Januar 2025 einen detaillierten Artikel, der die Feinheiten des JVM-Starts untersucht. Der Artikel bietet einen detaillierten Einblick in die internen Mechanismen der JVM-Initialisierung und liefert wertvolle Informationen für Java-Entwickler. Leser werden aufgefordert, die Videobeschreibung für weitere Informationen zu überprüfen.

Mehr lesen
Entwicklung Start

Valhalla: Javas epische Überarbeitung nähert sich dem Abschluss

2024-12-17

Nach zehnjähriger Entwicklung nähert sich Projekt Valhalla, die ehrgeizige Überarbeitung von Java, dem Abschluss. Mit dem Ziel, die Lücke zwischen Klassen und primitiven Datentypen zu schließen, führt Valhalla Wertklassen ein, die den Komfort von Klassen mit der Performance von primitiven Datentypen kombinieren und zu einem flachen und kompakten Speicherlayout führen. Auf der Devoxx 2024 gab der Java-Spracharchitekt Brian Goetz ein umfassendes Update mit Highlights wie Wertklassen, null-beschränkten Typen, verbesserter Definit-Zuweisung-Analyse und strikter Initialisierung.

Mehr lesen
Entwicklung Wertklassen