galera… tava relembrando alguns conceitos relacionados a Strings… vou colocar uns textos aqui e quero ver se vcs concordam.
String s = "abcd";
nesse caso é criado 1 objeto “abcd” que é atribuído a variável s e inserido no pool. Caso outra string seja criada com este valor:
String t = "abcd";
o pool informará que já existe um objeto criado com o mesmo valor e as variáveis s e t referenciarão o mesmo objeto no pool
Agora quando fizermos:
String s = new String("abcd");
estaremos forçando a JVM a criar um novo objeto String na memória, mas TAMBÉM será criado este objeto no pool, ou seja, 2 objetos serão criados, porém s estará apontando para o objeto da memória.
Agora se criarmos outro objeto
String t = new String("abcd");
neste caso fará o mesmo que s, só que criará apenas 1 objeto, sendo este na memória em que t referenciará. “abcd” não será criado no pool porque já existe essa constante por lá, só que s e t não referenciam o mesmo valor porque ambas as variáveis referenciam um endereço na memória cada uma e não valores que estão no pool.
Está correto?
me corrijam se eu estiver errado
grato