¿Cuál es la diferencia entre StringBuilder y StringBuffer en Java?
¡Hola a todos! Estoy aprendiendo Java y escribiendo un pequeño módulo de servidor para procesar logs. Necesito construir strings a partir de muchos fragmentos, y sé que la concatenación con "+" en un bucle es mala porque se crean muchos objetos String adicionales.
Empecé a usar StringBuffer, pero mi líder de equipo dijo que es mejor cambiar a StringBuilder. No entendí bien por qué. En internet escriben que ambas clases hacen lo mismo: permiten modificar un string sin crear nuevos objetos. ¿Entonces por qué hay dos clases? ¿Y cuál debo elegir?
Aquí hay un ejemplo de mi código:
```java
public class LogBuilder {
public static void main(String[] args) {
StringBuffer log = new StringBuffer();
for (int i = 0; i < 1000; i++) {
log.append("Evento #").append(i).append(": ");
log.append("Procesamiento completado\n");
}
System.out.println(log.toString());
}
}
```
Si simplemente reemplazo StringBuffer por StringBuilder, el código sigue funcionando. ¿Significa eso que