Caro José, O Java trata todas as strings como objetos. Assim sendo, "abc" é reconhecido pelo Java como um objeto String anônimo, que armazena o valor "abc". Por questão de performance, o Java cria somente um objeto anônimo que guarda o valor "abc". Na declaração, s1 e s2 são duas declarações de duas variáveis que fazem referência a um objeto String. Note que tanto s1 quanto s2 fazem referência ao mesmo objeto String anônimo. Assim sendo, if (s1 == s2) verifica se o objeto referenciado por s1 é o mesmo referenciado por s2, o que é verdade! :)
Um grande abraço, Luiz Reginaldo ----- Original Message ----- From: josesmg <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, January 24, 2002 2:51 PM Subject: [java-list] String > 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] -------------------------------------------------------------------------