Michel,
Vc tem toda raz�o. N�o fui muito claro em minha explica��o.
Onde j� se viu "mera coinscid�ncia" em programa��o?!?
Ou � TRUE ou � FALSE, depende de como os objetos ser�o instanciados.
Para obter TRUE:
String x = "100";
String y = "100";
Para obter FALSE:
String x = new String("100");
String y = new String("100");
Minhas desculpas...
[]'s
Rafael Pioli
-----Original Message-----
From: Michel [mailto:hewlet@;ieg.com.br]
Sent: quarta-feira, 16 de outubro de 2002 12:17
To: [EMAIL PROTECTED]
Subject: Re: [java-list] Inst�ncias
Caro SILVA Rafael P CONFAB: O fato do 1� exemplo ter dado TRUE
definitivamente n�o � mera coincid�ncia! Caiu no exame de programador o que
seria impresso, se fosse apenas coincid�ncia, n�o poder�amos dar uma
resposta precisa!
----- Original Message -----
From: SILVA Rafael P CONFAB <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, October 15, 2002 5:04 PM
Subject: RE: [java-list] Inst�ncias
Pessoal,
Tem muito mais coisas envolvidas nisso...
O fato da primeira compara��o ter dado TRUE � pura coinscid�ncia, tanto
poderia como n�o poderia ter dado TRUE.
A quest�o � como o Java aloca os objetos na mem�ria e acaba reutilizando
objetos iguais com endere�os diferentes.
Vale a pena dar uma olhada no tema HEAP, procurem na WEB.
Para quem tem o Core Java vol. 1 l� tb tem boas explica��es.
-----Original Message-----
From: Giovani Salvador [mailto:giovani-salvador@;procergs.rs.gov.br]
Sent: ter�a-feira, 15 de outubro de 2002 13:07
To: [EMAIL PROTECTED]
Subject: Re: [java-list] Inst�ncias
Legal a quest�o.
Depurei o c�digo dentro do JBuilder e dei uma olhada nas propriedades dos
objetos.
No primeiro exemplo, tudo igual, no segundo, as propriedades "Offset" e
"Value" estavam diferentes.
Em "Value" foram considerados os zero � esquerda em 9 posi��es, por isso deu
diferente.
Abaixo, o c�digo do m�todo toString da classe Integer. Neste c�digo � que
deu a diferen�a.
/**
* Returns a <code>String</code> object representing the
* specified integer. The argument is converted to signed decimal
* representation and returned as a string, exactly as if the
* argument and radix 10 were given as arguments to the {@link
<mailto:{@;link>
* #toString(int, int)} method.
*
* @param i an integer to be converted.
* @return a string representation of the argument in base 10.
*/
public static String toString(int i) {
int q, r, charPos ;
charPos = 12 ;
char buf [] = new char [charPos] ;
char sign = 0 ;
if (i == Integer.MIN_VALUE) {
return "-2147483648";
}
if (i < 0) {
sign = '-' ;
i = -i ;
}
// Generate two digits per iteration
while ( i >= 65536 ) {
q = i / 100 ;
// really: r = i - (q * 100) ;
r = i - ((q << 6) + (q << 5) + (q << 2)) ;
i = q ;
buf [--charPos] = DigitOnes [r] ;
buf [--charPos] = DigitTens [r] ;
}
// Fall thru to fast mode for smaller numbers
// assert(i <= 65536, i);
for (;;) {
q = (i * 52429) >>> (16+3) ;
r = i - ((q << 3) + (q << 1)) ; // r = i-(q*10) ...
buf [--charPos] = digits [r] ;
i = q ;
if (i == 0) break ;
}
if (sign != 0) {
buf [--charPos] = sign ;
}
**************************************************
Giovani Salvador
Site pessoal - http://pagina.de/siglas <http://pagina.de/siglas>
(Siglas de inform�tica)
PROCERGS - Cia. de Processamento de Dados do
Estado do Rio Grande do Sul - BRASIL
Setor TSI - Tecnologia para Sistemas de Informa��o
ICQ #44904309
**************************************************
----- Original Message -----
From: Michel <mailto:hewlet@;ieg.com.br>
To: [EMAIL PROTECTED] <mailto:java-list@;soujava.org.br>
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.
------------------------------ 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------