ValueOf ...  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

ops, galera tem uma questão interessante que não consegui achar a explicação pra isso!



Qual a saída? Compila? Erro Runtime?


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]
Sami Koivu
Virtual Machine Man
[Avatar]

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

Oi,

Se eu entendi sua dúvida correto.. b1 e b2 referem ao mesmo objeto, porque Boolean.valueOf() sempre retorna Boolean.TRUE ou Boolean.FALSE por razões de eficiência e consumo de memória. Como sabemos que só pode existir dois valores distintos(true/false), não faz sentido ficar criando novos objetos. Se você quer um novo objeto Boolean, precisa usar new Boolean(.....)

Ainda que os objetos são nossos amigos.. o excesso de objetos não é um amigo da eficiência.

Diz o javadoc:


public static Boolean valueOf(boolean b)
Returns a Boolean instance representing the specified boolean value. If the specified boolean value is true, this method returns Boolean.TRUE; if it is false, this method returns Boolean.FALSE. If a new Boolean instance is not required, this method should generally be used in preference to the constructor Boolean(boolean), as this method is likely to to yield significantly better space and time performance.


-Sami

(Slightly) Random Broken Thoughts on Java Security
[Email] [WWW] [Yahoo!] [MSN]
jgbt
GUJ Master
[Avatar]

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

minha opinião:
ao criar objetos Boolean, o valor passado na String não é case sensitve.
compila, roda, imprime fale, false.
se não for isso, explicações por favor...

[]'s

João Bier
Desenvolvedor Java
[Email]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

jbgt, o codigo compila, roda e imprime "false, true", pelos motivos citados pelo Sami.
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
jgbt
GUJ Master
[Avatar]

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

cv wrote:jbgt, o codigo compila, roda e imprime "false, true", pelos motivos citados pelo Sami.


não tinha lido a primeira resposta atentamente...
dei uma olhada na especificação e é isso mesmo, o metodo valueOf de Boolean não aloca um novo objeto.
valew!!!

[]'s

João Bier
Desenvolvedor Java
[Email]
Fabricio Cozer Martins
GUJ Ranger
[Avatar]

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

Blza Sami, não sabia desse detalhe!

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]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team