no primeiro, o compilador detecta q os valores das duas strings s�o iguais e por isso s� cria uma refer�ncia  na mem�ria q aponta para o mesmo valor. Funciona pq o compilador detecta esse detalhe.
 
no segundo, vc volta uma referencia diferente para a variavel 'y' pq vc usa um m�todo da classe Integer q retorna um objeto String, da� o pq de nao funcionar.
 
bel�?
 
falowww
----- Original Message -----
From: Michel
Sent: Tuesday, October 15, 2002 11:36 AM
Subject: [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