Wie ist String in switch-Anweisung effizienter als eine entsprechende if-else-Anweisung?

Java-Dokumentation sagt

Erzeugt der Java-compiler im Allgemeinen effizienter bytecode von switch-Anweisungen, die die Verwendung von String-Objekten als von verketteten if-then-else-Anweisungen.

AFAIK auch String in switch verwendet .equals() intern in einem Fall sensible Art und Weise. Also, was Effizienz bedeuten Sie in diesem Zusammenhang. Schnellere Zusammenstellung? Weniger bytecodes ? bessere Leistung?

  • nützlicher link :blackwasp.co.uk/SpeedTestIfElseSwitch.aspx
  • BTW, Entschuldigung an alle; ich war offenbar zu schreiben, während einschlafen Letzte Nacht und war nicht nur die Herstellung der Verbindung zu einem hash-basierten dispatch-Tabelle. Ja, das macht Sinn, nicht nur für nicht-ganzzahlige Werte, sondern für weit-Abstand geringer Dichte-Werte. "Vorsicht: Zur Vermeidung von Schäden an der reputation, engagieren Gehirn, bevor Sie die Finger in Gang."
Schreibe einen Kommentar