2012-05-14 104 views

回答

59

parseDouble返回字符串的一个基本的double包含值:

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

valueOf返回Double实例,如果已经被缓存,则会得到相同的缓存实例。

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

要避免建立新的Double对象实例的开销,你应该正常使用valueOf

+2

+1'valueOf()'方法家族是首选,因为这个原因... –

+5

正如你所说我认为parseDouble()是首选。为什么要使用valueOf()? – breceivemail

+2

编辑不是我的,并且无效,我会将其回滚 – MByD

0

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

0

如果你想将字符串转换为双数据类型则大多选择parseDouble()方法。 见示例代码:

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

您将获得双倍的价值。请参阅tutorialData上的StringToDouble教程。

+2

那么valueOf()方法呢? – breceivemail

+0

返回一个Double对象,它包含由参数字符串s表示的double值。 – Rajshri

28

Double.parseDouble(String)将返回原型double类型。 Double.valueOf(String)将返回类型为Double的包装对象。

因此,对于例如为:

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

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

此外,valueOf(...)是一个重载方法。它有两个变种:

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

鉴于parseDouble是一个单一的方法具有以下签名:

  1. double parseDouble(String s)
1

Ť hey都将字符串转换为double值,但是当parseDouble()方法返回原始double值时,valueOf()方法会进一步将该原语double转换为包含原始double值的Double包装类对象。

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

1

parseDouble()方法被用于初始化一个STRING(应含有一些数值)....它返回值是原始数据类型,如整数,浮点等等

但是的valueOf( )创建一个Wrapper类的对象。你必须打开它才能获得双倍的价值。它可以与巧克力相比。制造商用巧克力箔或纸包裹巧克力以防止污染。使用者拿走巧克力,取出并抛出包装并吃掉。

请注意以下转换。

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

int数据类型k被转换为使用整数类的对象,IT1。只要需要k对象,it1对象就可以在Java编程中使用。

以下代码可用于解包(从Integer对象获取int)对象it1。

int m = it1.intValue(); 

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

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

相关问题