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:[EMAIL PROTECTED]] 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:[EMAIL PROTECTED]> To: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> 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] -------------------------------------------------------------------------
