Questão: wrappers e variáveis  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
Grinvon
GUJ Master
[Avatar]

Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline

Uma questão legal:




Qual será a saída e por quê?

>> Inocêncio.
[MSN] [ICQ]
Ironlynx
Moderador
[Avatar]

Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline

Essa eh fácil...o wrapper de Long aceita um String no construtor,logo só os 2 últimos if funcionam para esse tipo de comparação(o conteúdo String dos wrappers).E no caso,somente o último servirá.Resp.: l1 equals l2

Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/
[WWW]
jgbt
GUJ Master
[Avatar]

Membro desde: 04/06/2003 15:01:48
Mensagens: 1286
Localização: Porto Alegre/RS
Offline

concordo com o Ironlynx.
A comparação de conteudo de obj so vai funcionar no ultimo if.

[]'s

João Bier
Desenvolvedor Java
[Email]
Rafael Nunes
Moderador
[Avatar]

Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline

Só o último if, pois as variáveis de referência referenciam objetos diferentes, logo somente equals() vai ser verdadeiro.


------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."

http://www.yaw.com.br
http://twitter.com/rafanunes
http://twitter.com/youandwe
[Email]
vinipitta
Entusiasta Java

Membro desde: 22/04/2004 15:10:38
Mensagens: 16
Localização: Salvador, BA, Brasil
Offline

E se fosse?


É muito interessante. Tem a ver com a estratégia flyweight implementada pelo java. Ele usa uma instância só para todas as string construidas em tempo de compilação. Me corrigam se eu estiver errado, ele vai imprimir os dois textos.

[]´s
Vinícius Pitta Lima de Araújo

"A verdade está lá fora..."
[Email] [MSN] [ICQ]
elvishr
JavaChild
[Avatar]

Membro desde: 01/04/2003 00:47:21
Mensagens: 117
Localização: Brasília/DF
Offline

Acho q não vai imprimir nada..

São 2 objetos String diferentes, logo a <> b.

No segundo if para comparar as strings deveria ser a.equals("java").

Elvis não morreu
SCJP 1.4
SCWCD 5.0
SCBCD 5.0
JBCAA
[ICQ]
ana_abrantes
JavaGuru
[Avatar]

Membro desde: 29/08/2003 15:44:09
Mensagens: 238
Localização: São Paulo
Offline

Engano seu elvishr...
Vai imprimir a==b e depois a == java.
No caso de String declarada dessa maneira não funciona como todos os outros tipos de objeto.
Só não ia imprimir nada se pelo menos uma das 2 tivesse assim:
String a = new String("java");

Ana

SCJP 1.4 - SCWCD 1.4
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team