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