Imutabilidade das Strings
Atualizado
Atualizado
Caso a gente comparar as duas Strings criadas acima (com "==", será false. O motivo é que a new String está alocado em outro espaço de memória.
Mas se compararmos com ".equals", será true. Pois o conteúdo é igual!
Cabe destacar, que se tiver por exemplo duas variáveis com o mesmo conteúdo e comparar com "==", será true.
Isso se chama Imutabilidade. Se a gente compartilha informação de uma variável para outra, nós não podemos mudá-la.
Se a gente muda para outra variável (como texto1 pra texto2), a gente muda também o endereço de memória do texto1. Ele passará a ser igual ao do texto2.
Esse é o "problema" do pool de strings. Ele armaneza as coisas em memória para reuso mas não permite a mutabilidade dessas Strings.