簡體   English   中英

什么是Double.valueOf(String s)和Double.ParseDouble(String s)之間的區別?

[英]Whats the difference between Double.valueOf(String s) and Double.ParseDouble(String s)?

據我所知,ParseDouble函數就像這樣:

 Double parseDouble(String s) throws ... {       
      return new Double(Double.valueOf(s));
 }

邏輯是相同的,但Double.valueOf()的返回值返回一個堆分配的Double對象,其中parseDouble返回一個原始double。 您的代碼示例不太正確。 java源代碼如下:

public static double parseDouble(String s) throws NumberFormatException {
    return FloatingDecimal.readJavaFormatString(s).doubleValue();
}

public static Double valueOf(String s) throws NumberFormatException {
    return new Double(FloatingDecimal.readJavaFormatString(s).doubleValue());
}

取決於您是想要雙人還是雙人。 雖然有自動裝箱,但這並不重要。 如果你正在做一些非常密集的事情,那么你想避免在需要雙打的地方使用雙打以避免自動裝箱開銷。 但是,它需要非常,非常,非常密集,才能真正發揮作用。

但是,我仍然主張根據所需的結果使用合適的一個。

parseDouble返回一個double value ,valueOf返回一個Double類型的新object

簡單,

public static double parseDouble(String s) throws NumberFormatException 

返回一個java原始double ,而

public static Double valueOf(String s) throws NumberFormatException

返回Double包裝 double值。

valueOf返回一個double,parseDouble返回一個Double。 使用適合您需求的任何一種。

在Java 6中,情況恰恰相反:

Double valueOf(String s) throws ... {       
      return new Double(Double.parseDouble(s));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM