Duplicar posible:
StringBuilder vs String concatenation in toString() in Java¿Por qué usar StringBuilder explícitamente si el compilador convierte la concatenación de cadenas en un StringBuilder automáticamente?
Me pregunto, ya que el compilador internamente utiliza un StringBuilder para anexar 2 Cuerdas cuando se realiza la concatenación de cadenas, entonces ¿cuál es el punto y el uso de la razón por qué me molesto StringBuilder si la concatenación de cadenas ya hizo el trabajo por usted? ¿Hay alguna otra razón específica?
@ JohanSjöberg sí, de hecho lo hace. Hacer 'result + = bar (foo [i])' producirá código como (suponiendo javac) 'result = new StringBuilder(). Append (result) .append (foo [i]). ToString()'. Tenga en cuenta que esto es mucho más trabajo que usar un 'StringBuilder'. – oldrinb
@ JohanSjöberg El punto es que __ las muestras no son equivalentes__ – oldrinb
Todavía no estoy tan claro ¿por qué? ¿Es porque requiere copiar sobre la cadena anterior (anterior) antes de hacer la concatenación para la primera muestra? – peter