Line 1: String x = "Java";
Line 2: x.concat(" Rules!");
Line 3: System.out.println("x = " + x);
salida es "x = Java"¿Qué ocurre con PERDIDO objetos String
Línea 1: crea un nuevo objeto String, da el valor "Java", y se refieren a ella x.
Línea 2: VM crea un segundo objeto String con el valor "¡Reglas de Java!" pero nada se refiere a eso. EL OBJETO DE LA SEGUNDA CUERDA SE PERDIÓ AL INSTANTE NO PUEDES OBTENERLO.
Como estos Objetos de Cadena se crean en Heap, el segundo objeto será Basura Recopilada.
Tenga en cuenta que '" x = "+ x' crea una tercera cadena. – Thilo