Questão SCJP!  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
Fabricio Cozer Martins
GUJ Ranger
[Avatar]

Membro desde: 08/05/2004 10:22:03
Mensagens: 935
Localização: Salvador/Brasil
Offline

Aê pessoas!
Não sei se esse tipo de questão cai na prova, mas tava no mock...



Compila? Runtime Exception ? Imprime o q?


Fabrício Cozer Martins
Analista de Sistemas
Bacharel em Ciência da Computação da UFBa
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE 1.4
[MSN] [ICQ]
ranophoenix
JavaEvangelist
[Avatar]

Membro desde: 28/02/2004 22:49:47
Mensagens: 389
Offline

Acho que imprimiria: true,false

This message was edited 1 time. Last update was at 04/04/2005 08:15:36

andre_a_s
GUJ Ranger
[Avatar]

Membro desde: 23/02/2003 01:04:53
Mensagens: 755
Localização: Santo André(SP)
Offline

ranophoenix wrote:Acho que imprimiria: true,false


Testei aqui e deu isso mesmo... mas pq a segunda opção deu false????
Um objeto.toString() é sempre igual a ele mesmo.toString() nao é?????

This message was edited 1 time. Last update was at 04/04/2005 08:26:14


Gosta de cerveja e de viagem?
Visite meu blog!
http://www.TravelAndBeer.com
[Email] [MSN] [ICQ]
thadeurc
JavaChild
[Avatar]

Membro desde: 25/10/2004 08:14:14
Mensagens: 130
Localização: São Paulo
Offline

Eu testei utilizando java i.5 e deu false, false.

Acho que dá false pelo fato de que ele cria as Strings quando chamamos o toString e elas não estão no pool de String. Ele utiliza (provavelmente) new String() creio eu.

http://blog.caelum.com.br



[MSN]
Rafael Nunes
Moderador
[Avatar]

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

Testei com a 1.4.2 e deu true, false.

Não entendi por que o segundo é false. Se ambos serão Strings "1.0".

------------------------------------------------------------------
"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]
jehjeh
Entusiasta Java

Membro desde: 13/02/2004 10:50:30
Mensagens: 17
Offline

testei com 1.4.1 e deu false, false
[Email] [MSN]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Realmente não entendí pq o primeiro dá true e o segundo dá false (JDK 1.4.2).

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
thadeurc
JavaChild
[Avatar]

Membro desde: 25/10/2004 08:14:14
Mensagens: 130
Localização: São Paulo
Offline

O fato de ele dar true ou false no primeiro não está relacionado com a comparação feita utilizando "==" para objetos comparar o endereço de memória??? é uma resposta não confiável vendo que estamos querendo comparar conteúdos. Se não me engano no Core java (ou no Deitel, nao me lembro ao certo) eh feito um alerta que quando utilizamos "==" para comparar Strings pode dar "problema". Sei que ele retorna true se as Strings estiverem sido criadas sem o uso do new String. POis elas estarao no Pool certo??

http://blog.caelum.com.br



[MSN]
andre_a_s
GUJ Ranger
[Avatar]

Membro desde: 23/02/2003 01:04:53
Mensagens: 755
Localização: Santo André(SP)
Offline

thadeurc wrote:O fato de ele dar true ou false no primeiro não está relacionado com a comparação feita utilizando "==" para objetos comparar o endereço de memória??? é uma resposta não confiável vendo que estamos querendo comparar conteúdos. Se não me engano no Core java (ou no Deitel, nao me lembro ao certo) eh feito um alerta que quando utilizamos "==" para comparar Strings pode dar "problema". Sei que ele retorna true se as Strings estiverem sido criadas sem o uso do new String. POis elas estarao no Pool certo??


Mas ele criou os objetos do mesmo jeito!
Como pode funcionar pra um e nao para o outro???


Pau da JVM mesmo???

This message was edited 1 time. Last update was at 04/04/2005 10:28:01


Gosta de cerveja e de viagem?
Visite meu blog!
http://www.TravelAndBeer.com
[Email] [MSN] [ICQ]
Sami Koivu
Virtual Machine Man
[Avatar]

Membro desde: 16/09/2004 09:49:27
Mensagens: 574
Localização: Curitiba-PR
Offline

Dando uma olhada no código fonte do java.lang.Integer que eu tô usando talvez ajuda um pouco:



Ele retorna Strings não criados com new String(...) em alguns casos mais comuns(de -3 até 10 e tambem -2147483648). E assim retorna true, false com meu java pelo razões ditas pelo thadeurc.

Depende da implementação do Integer.toString(). Se ele sempre retorna o mesmo objecto String para o número 1 ou não.

E o classe Double aparentemente sempre cria um novo objeto String

Muito interessante, isso, Fabrício.

-Sami

This message was edited 1 time. Last update was at 04/04/2005 13:20:26


(Slightly) Random Broken Thoughts on Java Security
[Email] [WWW] [Yahoo!] [MSN]
Sami Koivu
Virtual Machine Man
[Avatar]

Membro desde: 16/09/2004 09:49:27
Mensagens: 574
Localização: Curitiba-PR
Offline

andre_a_s wrote:
Mas ele criou os objetos do mesmo jeito!
Como pode funcionar pra um e nao para o outro???


Pau da JVM mesmo???


Os objetos Integer e Double são criados mais ou menos do mesmo jeito, mas a comparação é entre os objetos String. Que são criados(ou não) nos metodos Integer.toString() e Double.toString().

Ou seja: Ambos seriam false se não fosse pelo código do Integer.toString() que sempre retorna o mesmo String "1" em alguns versões do java.

(Slightly) Random Broken Thoughts on Java Security
[Email] [WWW] [Yahoo!] [MSN]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Muito tosco isso.

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
thadeurc
JavaChild
[Avatar]

Membro desde: 25/10/2004 08:14:14
Mensagens: 130
Localização: São Paulo
Offline

Concordo em com o daniel.. muito tosco... tomara que questões como esta não caiam em provas pois deve dar dor de cabeça

http://blog.caelum.com.br



[MSN]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Isso nem deveria cair na prova. Foge dos objetivos do SCJP.

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
Sami Koivu
Virtual Machine Man
[Avatar]

Membro desde: 16/09/2004 09:49:27
Mensagens: 574
Localização: Curitiba-PR
Offline

Ah, com certeza não vai cair na prova real, não.


-Sami

(Slightly) Random Broken Thoughts on Java Security
[Email] [WWW] [Yahoo!] [MSN]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team