Boa noite!
No texto diz que o código abaixo está criando vários objetos:
String texto = "Socorram";
texto = texto.concat("-");
texto = texto.concat("me");
texto = texto.concat(", ");
texto = texto.concat("subi ");
texto = texto.concat("no ");
texto = texto.concat("ônibus ");
texto = texto.concat("em ");
texto = texto.concat("Marrocos");
System.out.println(texto);
Em seguida, diz que o código abaixo é o mais correto, pois está usando a mesma referencia (builder):
StringBuilder builder = new StringBuilder("Socorram");
builder.append("-");
builder.append("me");
builder.append(", ");
builder.append("subi ");
builder.append("no ");
builder.append("ônibus ");
builder.append("em ");
builder.append("Marrocos");
String texto = builder.toString();
System.out.println(texto);
Pelo que eu entendi, os dois códigos usam a mesma referencia para concatenar. O primeiro usa a variável texto. O segundo usa a variável builder.
Não entendi a diferença que quiseram mostrar entre a classe String e a classe StringBuilder.