StringBuilder vs StringBuffer: cuál es la diferencia y qué es mejor usar en Java?
¡Hola a todos! Empecé a estudiar Java y a menudo me encuentro con situaciones donde necesito concatenar muchas cadenas, especialmente en bucles. Al principio usaba la concatenación normal con `+`, pero leí que no es eficiente y que es mejor usar `StringBuilder` o `StringBuffer`.
Sin embargo, estoy confundido: ¿cuál es la diferencia entre ellos? Parece que ambos hacen lo mismo — permiten construir una cadena sin crear objetos innecesarios. Escribí un pequeño ejemplo, pero no entiendo cuál elegir:
```java
public class Test {
public static void main(String[] args) {
// Opción 1
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
sb.append("número ").append(i).append(", ");
}
String result1 = sb.toString();
// Opción 2
StringBuffer sbf = new StringBuffer();
for (int i = 0; i < 1000; i++) {
sbf.append("número ").append(i).append(", ");
}
String result2 = sbf.toString();
}
}
```