Quelle est la différence entre StringBuilder et StringBuffer en Java ?
Bonjour à tous ! J'apprends Java et j'écris un petit module serveur pour traiter des logs. J'ai besoin de construire des chaînes à partir de nombreux fragments, et je sais que la concaténation avec "+" dans une boucle est mauvaise car elle crée beaucoup d'objets String superflus.
J'ai commencé à utiliser StringBuffer, mais mon tech lead m'a dit qu'il valait mieux passer à StringBuilder. Je n'ai pas bien compris pourquoi. Sur Internet, on dit que les deux classes font la même chose : permettre de modifier une chaîne sans créer de nouveaux objets. Pourquoi alors deux classes ? Et laquelle choisir ?
Voici un exemple de mon code :
```java
public class LogBuilder {
public static void main(String[] args) {
StringBuffer log = new StringBuffer();
for (int i = 0; i < 1000; i++) {
log.append("Événement #").append(i).append(": ");
log.append("Traitement terminé\n");
}
System.out.println(log.toString());
}
}
```
Si je remplace simplement StringBuffer par StringBuilder, le code continue de fonctionner. Cela signifie-t-il que