Diferença entre parseXxx() e valueOf()

Alguem pode explicar qual a diferenca entre os dois métodos, ja que testei ambos de várias maneiras e parecem fazer a mesma coisa

Basicamente: O ‘valueOf(String)’ retorna uma classe encapsulada do parametro String que foi passado ( Classes wrappers : Integer, Float e bla bla bla ) e o ‘parseXXX(String)’ retorna um tipo primitivo ( int, float e bla bla bla ).

os dois são semelhantes mas o parseXxx é usado pra criar um objeto Wrapper a partir de onde vc ta transformando enquanto o ValueOf retorna o primitivo mesmo…

[code]double i = 5; // criou um primitivo

String s = String.ValueOf(i); // usou valueof e tranformou em string

Double d = Double.parseDouble(s); // criou um wrapper e pra isso usou o parseDouble

double d = Double.parseDouble(s); // como o java tem autoboxxing, vc poderia ter criado um primitivo usando parseDouble[/code]

O rodolfox109 respondeu uma coisa eo redr4gon respondeu o inverso. heheheh

valueOf(String) -> retorna objeto Wrapper
exemplo da api do Double: http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Double.html#valueOf%28java.lang.String%29

parseXXX(String) -> Retorna o tipo Primitivo
http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Double.html#parseDouble%28java.lang.String%29

ops… fiz confusão… vou corrigir =p

entao redr4gon, acho que é o contrario, como explicou o rodolfox109. Porém fiz o seguinte teste aqui e funcionou:

     Double d4 = Double.parseDouble("3.15456456");
 System.out.println(d4 instanceof Double);
 
 Double d5 = Double.valueOf("3.15456456");
 System.out.println(d5 instanceof Double);

Ambos retornaram true, ou seja, ambos serviram para criar o Objeto. Daí a razão da dúvida

foi eu q fiz confusão… a resposta do kra ta correta…

[quote=vitolito]entao redr4gon, acho que é o contrario, como explicou o rodolfox109. Porém fiz o seguinte teste aqui e funcionou:

     Double d4 = Double.parseDouble("3.15456456");
 System.out.println(d4 instanceof Double);
 
 Double d5 = Double.valueOf("3.15456456");
 System.out.println(d5 instanceof Double);

Ambos retornaram true, ou seja, ambos serviram para criar o Objeto. Daí a razão da dúvida[/quote]

Vitolito, isso acontece por causa do unboxing e autoboxing implementado na versão 5 do java.
Dê uma olhada nesse link: http://javafree.uol.com.br/artigo/6588/Autoboxing-e-Unboxing-do-Java-15.html e se tiver alguma dúvida e só falar que tento lhe ajudar.

[quote=rodolfox109][quote=vitolito]entao redr4gon, acho que é o contrario, como explicou o rodolfox109. Porém fiz o seguinte teste aqui e funcionou:

     Double d4 = Double.parseDouble("3.15456456");
 System.out.println(d4 instanceof Double);
 
 Double d5 = Double.valueOf("3.15456456");
 System.out.println(d5 instanceof Double);

Ambos retornaram true, ou seja, ambos serviram para criar o Objeto. Daí a razão da dúvida[/quote]

Vitolito, isso acontece por causa do unboxing e autoboxing implementado na versão 5 do java.
Dê uma olhada nesse link: http://javafree.uol.com.br/artigo/6588/Autoboxing-e-Unboxing-do-Java-15.html e se tiver alguma dúvida e só falar que tento lhe ajudar.
[/quote]

Perfeito meu caro…assimilado, obrigado