40

Casting an Object to a double and noticed both these methods. I see that parseDouble has been in since 1.2. Why add this method if it essentially does the same functionality as valueOf(s)?

Will
  • 8,246
  • 16
  • 60
  • 92

3 Answers3

55

parseDouble() returns a primitive double value. valueOf() returns an instance of the wrapper class Double. Before Java 5 introduced autoboxing, that was a very significant difference (and many would argue it still is).

Michael Borgwardt
  • 342,105
  • 78
  • 482
  • 720
  • Nice I just discovered the difference via some overloading. Now to look up autoboxing – Will Aug 31 '11 at 09:39
20

Because it is not the same. valueOf() creates a Double object which is often not needed. parseDouble() does not. With autoboxing it's valueOf(String) which is no longer needed, but is therefore backward compatibility.

Buhake Sindi
  • 87,898
  • 29
  • 167
  • 228
Peter Lawrey
  • 525,659
  • 79
  • 751
  • 1,130
7

If you just need the value (primitive) use parseDouble(String s) the cost is less. valueOf(String s) returns a Double class which wraps the primitive double value.

Victor Martinez
  • 1,102
  • 2
  • 8
  • 22