|
Correto Rafael Vilardo e o JSams tb deu uma
explica��o muito boa.
Para fechar:
String x =
"100";
String y = new String("100"); if(x ==
y)
System.out.println("IGUAL!!!"); // n�o entra aqui. Qualquer outro tipo de inicializa��o de y (que n�o
seja o uso de literais, mesmo concatenadas, por exemplo), inclusive a partir da
chamada a NEW vai quebrar a compara��o do if acima, a n�o ser que utilizemos o
m�todo equals...porque os refer�ncias dos objetos em mem�ria ser�o
diferentes!!
[]'s
Caetano
----- Original Message -----
From: [EMAIL PROTECTED]
Sent: Wednesday, October 16, 2002 12:04 PM
Subject: RES: [java-list] Inst�ncias 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
|
