Capitulo 6 (Strings)

Pessoal , essa questão afirma que foram criadas 2 objetos string(1 referenciado por x e a String perdida “xyz”):

String x=new String(“xyz”);

Não seria somente um (objeto xyz) ?

Ola

Até onde eu lembrava deste assunto, se vc usar o construtor new da string ou simplismente atribuir o valor, era a mesma coisa, então quando vc coloca desta forma é criado no pool de strings, acho que vc deve estar lendo isto agora, uma string “zyx”, e esta referencia é dada ao x… mas não me lembro muito bem deste tópico.

Esse construtor da classe String recebe um objeto da propria classe String, sendo assim, ao criar um objeto já deve existir outro (no caso é um literal), a String criada pelo construtor é só uma copia da original passada como parametro, portanto, são duas…

“xyz” //cria um objeto
new String() //cria o outro

so para complementar, o primeiro objeto “xyz” eh criado no pool de strings, enquanto o segundo objeto new String() eh alocado no heap. Portanto, sao dois objetos.