thingol, o seguinte código:
String s1 = "spring";
String s2 = s1 + "summer";
s1.concat("fall");
s2.concat(s1);
s1 += "winter";
System.out.println(s1 + " " +s2);
Irá imprimir “spring winter spring summer”
No livro da Kathy, neste trecho de código diz que foram criados 8 objetos String:
1-“spring”, 2- “summer”(perdido), 3-“spring summer”, 4-“fall”(perdido), 5-“spring fall”(perdido), 6-“spring summer spring”(perdido), 7-“winter”(perdido), 8-“spring winter” (nesse ponto “spring foi perdido”). mas apenas 2 continuam com referências válidas.
Este código, estaria errado? Pois como vc disse(se entendi direito) o código String s1 = "spring"; não cria de fato um objeto já que a JVM irá inserir no pool, fazendo s1 apenas referenciar a String “spring”.
Confesso que relendo o seu post e agora tentando entender o livro, acabei ficando bem confuso.
Daria pra vc explicar o que de fato ocorre e quantos objetos são criados e em quais linhas???
Se puder dar uma luz, fico muito agradecido!
Grato.