[RESOLVIDO] Exercicio da Caelum errado?

8 respostas
giovaniufop

Estava fazendo o simulado da Caelum e me deparei com a pergunta abaixo, e a resposta correta é a letra B, com exceção de uma coisa: o ultimo System.out.println(b==new Boolean(false)); deveria imprimir true, estou certo? Ele faz unboxing e compara os valores booleanos, mas na resposta o ultimo valor é dado como false.

Então a pergunta não tem resposta correta, ou eu que errei?

Se eu errei avisa ae pra poder adquirir conhecimento. :lol:

System.out.println(5 < new Integer(6));
System.out.println(new Integer(6) == new Integer(6));
System.out.println(new Integer(5) < new Integer(6));
 
Object o = 54.5;
System.out.println(o.getClass().getName());

Boolean b = false;
System.out.println(b==false);
System.out.println(b==Boolean.FALSE);
System.out.println(b==new Boolean(false));

Pergunta: Qual será a saída gerada por essas linhas?

A. false true true java.lang.Object true false false
B. true false true java.lang.Double true true false
C. O código não compila pois não podemos comparar referências com o sinal ‘<’.
D. O código não compila pois não podemos atribuir um tipo primitivo com uma referência.
E. false false true java.lang.Object false true false

Valeu

8 Respostas

anderson.bonavides

giovaniufop:
Estava fazendo o simulado da Caelum e me deparei com a pergunta abaixo, e a resposta correta é a letra B, com exceção de uma coisa: o ultimo System.out.println(b==new Boolean(false)); deveria imprimir true, estou certo? Ele faz unboxing e compara os valores booleanos, mas na resposta o ultimo valor é dado como false.

Então a pergunta não tem resposta correta, ou eu que errei?

Se eu errei avisa ae pra poder adquirir conhecimento. :lol:

System.out.println(5 < new Integer(6));
System.out.println(new Integer(6) == new Integer(6));
System.out.println(new Integer(5) < new Integer(6));
 
Object o = 54.5;
System.out.println(o.getClass().getName());

Boolean b = false;
System.out.println(b==false);
System.out.println(b==Boolean.FALSE);
System.out.println(b==new Boolean(false));

Pergunta: Qual será a saída gerada por essas linhas?

A. false true true java.lang.Object true false false
B. true false true java.lang.Double true true false
C. O código não compila pois não podemos comparar referências com o sinal ‘<’.
D. O código não compila pois não podemos atribuir um tipo primitivo com uma referência.
E. false false true java.lang.Object false true false

Valeu

Ja pensou em jogar pro eclipse?

:wink:

giovaniufop

acabei de jogar pro eclipse e deu TRUE. Devia ter jogado antes para o eclipse assim naum ia precisar perguntar no forum adhfuadhfda

flw

anderson.bonavides

giovaniufop:
acabei de jogar pro eclipse e deu TRUE. Devia ter jogado antes para o eclipse assim naum ia precisar perguntar no forum adhfuadhfda

flw

Não mas não é isso que eu quiz dizer. Até acho legal vc jogar no forum tbm quando não souber. É porque jogar no compilador e simular algumas outras situações faz com que vc aprenda mais. Ok? Duvidas sempre jogamos no compilador. Isso é tão importante quanto revisar um capitulo.

:wink:

E ai qual foi a conclusão que vc chegou da resposta?

giovaniufop

Conclusão, TRUE, por que o compilador faz o unboxing e compara os booleanos.

anderson.bonavides

:wink:

J

Vcs realmente testaram isso no eclipse? Pq a última saída é false.

giovaniufop

é pra fala verdade agora eu olhei aki e tinha testado errado msm.

valeu por informar, já ia aprendendo coisa errada rkkk

giovaniufop

Eu tinha declarado b como primitivo boolean e não como Objeto Boolean, olha o codigo, assim dava true haua

System.out.println(5 < new Integer(6));  
 System.out.println(new Integer(6) == new Integer(6));  
 System.out.println(new Integer(5) < new Integer(6));  
   
 Object o = 54.5;  
 System.out.println(o.getClass().getName());  
   
 boolean b = false;  
 System.out.println(b==false);  
 System.out.println(b==Boolean.FALSE);  
 System.out.println(b==new Boolean(false));

VALEU KRA

Criado 3 de março de 2008
Ultima resposta 3 de mar. de 2008
Respostas 8
Participantes 3