2012-05-14 36 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類的方法。

相關問題