me hice esta pregunta:¿Cómo maneja Java los objetos String en la memoria?
String s = "abc"; // creates one String object and one
// reference variable
In this simple case, "abc" will go in the pool and s will refer to it.
String s = new String("abc"); // creates two objects,
// and one reference variable*
Basado en datos anteriores cuántos objetos String y el número de variables de referencia fueron creados antes de la sentencia println por debajo de código?
String s1 = "spring ";
String s2 = s1 + "summer ";
s1.concat("fall ");
s2.concat(s1);
s1 += "winter ";
System.out.println(s1 + " " + s2);
Mi respuesta fue El resultado de este fragmento de código es resorte del invierno primavera verano
Hay dos variables de referencia, S1 y S2. Hubo un total de ocho objetos de cadena creados de la siguiente manera: "primavera", "verano" (perdido), "primavera verano", "caída" (perdido), "primavera caída" (perdido), "primavera verano primavera" (perdido), "invierno" (perdido), "invierno de primavera" (en este punto "primavera" se pierde).
Solo dos de los ocho objetos String no se pierden en este proceso.
¿Es correcto?
Algo bueno saber: http://stackoverflow.com/questions/7663252/java-string-concat-in-stringbuilder-call/ Tenga en cuenta que mi respuesta a esta pregunta era incorrecta ... – Gevorg