O caso da String é igual mas é diferente também.
Java re aproveita, se o valor for igual e se não for usada o new, a String que
está em memória.
por
isso dá para usar == e equals ao mesmo tempo.
-----Mensagem original-----
De: Anderson Corrêa [mailto:[EMAIL PROTECTED]]
Enviada em: Monday, January 28, 2002 1:59 PM
Para: [EMAIL PROTECTED]
Assunto: Re: [java-list] String>From: "Luiz Reginaldo" <[EMAIL PROTECTED]> >Reply-To: [EMAIL PROTECTED] >To: <[EMAIL PROTECTED]> >Subject: Re: [java-list] String >Date: Fri, 25 Jan 2002 08:25:28 -0200 > >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] >------------------------------------------------------------------------- >o caro companheiro esta correto em afirmar que em java String não é um tipo primitivo e sim um objeto mas se equivocou em dizer que pode-se comparar Strings com == para se comparar Strings usa-se equals exemplo: if(s1.equals(s2)){} ou if (s1.equalsIgnoreCase(s2))
porque java no caso da string nao compara as letras e sim o local de memoria onde esta alocado o objeto ou seja nunca s1 vai se igual a s2 dessa maneira if(s1 ==s2)
O MSN Photos é o jeito mais fácil de compartilhar e imprimir as suas fotos: http://photos.msn.com.br/support/worldwide.aspx
------------------------------ 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] -------------------------------------------------------------------------