Mögliche Duplizieren:
StringBuilder vs String concatenation in toString() in JavaWarum StringBuilder explizit verwenden, wenn der Compiler die String-Verkettung automatisch in einen StringBuilder konvertiert?
Ich frage mich, da der Compiler intern einen Stringbuilder verwendet 2 Strings anhängen, wenn String Verkettung durchgeführt wird, was ist dann der Punkt, und warum sollte ich die Mühe mit StringBuilder ob String-Verkettung die Aufgabe bereits erledigt hat? Gibt es andere spezifische Gründe?
@ JohanSjöberg ja, tatsächlich tut es. Doing 'result + = bar (foo [i])' erzeugt Code wie (angenommen javac) 'result = new StringBuilder(). Append (result) .append (foo [i]). ToString()'. Beachten Sie, das ist viel mehr Arbeit als die Verwendung eines 'StringBuilder'. – oldrinb
@ JohanSjöberg der Punkt ist, dass __die Proben nicht gleichwertig sind__ – oldrinb
Ich bin immer noch nicht so klar, warum? Liegt es daran, dass die alte Zeichenfolge (vorher) kopiert werden muss, bevor die Verkettung für die erste Stichprobe ausgeführt wird? – peter