Vamos l�... no primeiro exemplo, como vc est� usando uma string literal para inicializar as duas vari�veis, na verdade o que acontece � uma otimiza��o na hora da compila��o, criando uma constante para representar a string literal. Sendo assim, as duas vari�veis "apontam" para o mesmo objeto. J� quando vc usa o Integer.toString(100), um outro objeto � criado, por isso a compara��o == n�o funciona. Qualquer d�vida, d� ma lida no www.precisejava.com, que t�m uma sess�o sobre otimiza��o no uso de strings, entre outros ( ejb, servlets, loops, etc ).
 
Abs,
Rafael Vilardo.

-----Mensagem original-----
De: Michel [mailto:[EMAIL PROTECTED]]
Enviada em: ter�a-feira, 15 de outubro de 2002 11:36
Para: [EMAIL PROTECTED]
Assunto: [java-list] Inst�ncias

Ol� galera!
    Para exemplificar minha d�vida, mostrarei dois exemplos:
-------------EXEMPLO 1--------------
public static void main(String args[])
{
    String x = "100";
    String y = "100";
    if(x == y)
        System.out.println("IGUAL!!!")
}
------------EXEMPLO 2----------
public static void main(String args[])
{
    String x = "100";
    String y = Integer.toString(100);
    if(x == y)
        System.out.println("IGUAL!!!");
}
 
No exemplo 1, aparece na tela "IGUAL!!!", no exemplo 2 n�o aparece nada!
Sei que para comparar duas Strings tenho o m�todo equals(String s), mas para fins de conhecimento, gostaria de saber por qu� o 1� exemplo funciona e o 2� n�o.
 
Obrigado.

Responder a