Double.parseDouble(string)和Double.valueOf(string)有什么区别?

我想将String转换为Double数据types。 我不知道是否应该使用parseDoublevalueOf方法?

这些与方法有什么区别?

parseDouble返回一个包含string值的原始double:

返回一个新的double,由类Double的valueOf方法执行,初始化为由指定的String表示的值。

valueOf返回一个Double实例,如果已经被caching了,你会得到相同的caching实例。

返回一个Double实例,表示指定的double值。 如果不需要新的Double实例,则通常应该优先使用此方法(优先于构造函数Double(double)),因为此方法通过caching频繁请求的值可能会产生显着更好的空间和时间性能。

为了避免创build新的Double对象实例的开销,通常应该使用valueOf

Double.parseDouble(String s)将返回一个原始的doubletypes。 Double.valueOf(String s)将返回Doubletypes的Wrapper Object

所以,例如。

 double d = Double.parseDouble("1"); Double d = Double.valueOf("1"); 

Morover, valueOf( )是一个重载的方法。 它有两个变体:

  1. Double valueOf(String s)
  2. Double valueOf(Double d)

    作为parseDouble是具有以下签名的单个方法:

  3. double parseDouble(String s)

它们都将string转换为double值,但是当parseDouble()方法返回原始double值时,valueOf()方法进一步将double转换为包含原始double值的Double包装类对象。

如果String中的值不能转换为基元double,则从String到primitive double的转换可能会抛出NFE(NumberFormatException)。

parseDouble()方法用来初始化一个STRING(它应该包含一些数值)….它返回的值是原始数据types,如int,float等。

但是valueOf()创build了一个Wrapper类的对象。 你必须打开它才能获得双重价值。 它可以与巧克力相比。 制造商用巧克力箔或纸包好巧克力,以免污染。 用户拿起巧克力,取出并扔出包装物并吃掉。

观察下面的转换。

int k = 100; Integer it1 = new Integer(k);

int数据typesk使用Integer类转换为一个对象it1。 只要需要k对象,就可以在Java编程中使用it1对象。

下面的代码可以用来解开(从Integer对象中取回int)对象it1。

 int m = it1.intValue(); 

的System.out.println(M * M); //打印10000

// intValue()是返回一个int数据types的Integer类的一个方法。

文档parseDouble()说:“返回一个新的double,初始化为由指定的String表示的值,由double类的valueOf方法执行”,所以它们应该是相同的。

如果要将string转换为double数据types,那么大多数selectparseDouble()方法。 看示例代码:

 String str = "123.67"; double d = parseDouble(str); 

你会得到双倍的价值。 请参阅tutorialData的StringToDouble 教程 。