Avatar ·

StringBuilder vs StringBuffer: qual a diferença e o que é melhor usar em Java?

Olá a todos! Comecei a estudar Java e frequentemente me deparo com situações em que preciso concatenar muitas strings, especialmente em loops. No começo, eu usava concatenação normal com `+`, mas li que isso é ineficiente e que é melhor usar `StringBuilder` ou `StringBuffer`. No entanto, estou confuso: qual é a diferença entre eles? Parece que ambos fazem a mesma coisa — permitem montar uma string sem criar objetos desnecessários. Escrevi um pequeno exemplo, mas não entendo qual escolher: ```java public class Test { public static void main(String[] args) { // Opção 1 StringBuilder sb = new StringBuilder(); for (int i = 0; i < 1000; i++) { sb.append("número ").append(i).append(", "); } String result1 = sb.toString(); // Opção 2 StringBuffer sbf = new StringBuffer(); for (int i = 0; i < 1000; i++) { sbf.append("número ").append(i).append(", "); } String result2 = sbf.toString(); } } ```