J'ai tendance à utiliser StringBuilder
sur les chemins de code où les performances sont un souci. La concaténation répétée de chaînes de caractères dans une boucle est souvent un bon candidat.
La raison de préférer StringBuilder
est que les deux +
y concat
créent un nouvel objet à chaque fois que vous les appelez (à condition que l'argument de droite ne soit pas vide). Cela peut rapidement donner lieu à un grand nombre d'objets, qui sont presque tous complètement inutiles.
Comme d'autres l'ont souligné, lorsque vous utilisez +
plusieurs fois dans la même déclaration, le compilateur peut souvent l'optimiser pour vous. Cependant, d'après mon expérience, cet argument ne s'applique pas lorsque les concaténations sont effectuées dans des instructions distinctes. Il ne s'applique certainement pas aux boucles.
Cela dit, je pense que la priorité absolue devrait être d'écrire un code clair. Il existe d'excellents outils de profilage pour Java (j'utilise YourKit), qui permettent de repérer très facilement les goulets d'étranglement en matière de performances et d'optimiser uniquement les parties qui comptent.
P.S. Je n'ai jamais eu besoin d'utiliser concat
.