D’après cet article StringBuilder vs StringBuffer vs String.concat – done right | kaioa.com (en anglais), il est plus avantageux en terme de performance d’utiliser StringBuilder
à partir de Java 1.5 (ou StringBuffer
pour les versions antérieures) que de concaténer des chaînes de caractères à coups de concat
. Les chiffres sont assez parlant !
Each time you append something via ‘+’ (
String.concat()
) a newString
is created, the old stuff is copied, the new stuff is appended, and the old String is thrown away. The bigger the String gets the longer it takes – there is more to copy and more garbage is produced.
Ce que l’on pourrait traduire par :
A chaque fois que l’on concatène à l’aide de
String.concat()
, une nouvelle instance deString
est créée, l’ancienne étant copiée, accolée à la nouvelle, puis jetée. Plus longue est la chaîne de caractères et plus longtemps cela prendra. Donc plus on concatène, plus on créé du déchet.
De plus, le compilateur Java va transformer tout seul les concaténations manuelles avec des « + » ou des « line breaks » en utilisant des StringBuillder::append
. Donc on peut utiliser sans problèmes cette écriture ! C’est de loin la plus lisible pour de petites chaînes de caractères. Quant aux autres : StringBuilder
à la rescousse !
Voilà qui est bon à savoir 🙂