È uma otimalização da Java. Uma vez que os dois literais são iguals ambos apontam para o mesmo local na memoria, por isso s1 == s2 retorna true. Isso é somente no caso que seu codigo faz algo similar a:
s1 = "abc"; <snip> s2 = "abc"; <snip> if (s1 == s2) josesmg wrote: >Para comparar uma String s1 com outra s2 eu devo usar o método equals. > >Porém eu com uma dúvida. Se eu defino s1 = "abc" e s2 = "abc" e faço > >if (s1 == s2) me retorna true. > >Alguém me explica isto. > > > > >------------------------------ LISTA SOUJAVA ---------------------------- >http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP >dúvidas mais comuns: http://www.soujava.org.br/faq.htm >regras da lista: http://www.soujava.org.br/regras.htm >para sair da lista: envie email para [EMAIL PROTECTED] >------------------------------------------------------------------------- > ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------