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
[quote=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
[/quote]
Ja pensou em jogar pro eclipse?
acabei de jogar pro eclipse e deu TRUE. Devia ter jogado antes para o eclipse assim naum ia precisar perguntar no forum adhfuadhfda
flw
[quote=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[/quote]
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.
E ai qual foi a conclusão que vc chegou da resposta?
Conclusão, TRUE, por que o compilador faz o unboxing e compara os booleanos.
Vcs realmente testaram isso no eclipse? Pq a última saída é false.
é pra fala verdade agora eu olhei aki e tinha testado errado msm.
valeu por informar, já ia aprendendo coisa errada rkkk
Eu tinha declarado b como primitivo boolean e não como Objeto Boolean, olha o codigo, assim dava true haua
[code]
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)); [/code]
VALEU KRA