Avatar ·

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(); } } ```