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

2022-08-31 14:32:00

我想转换为数据类型。我不知道我是否应该使用或.StringDoubleparseDoublevalueOf

这两种方法有什么区别?


答案 1

parseDouble 返回一个包含字符串值的基元双精度值:

返回初始化为指定 String 所表示的值的新双精度值,如类 Double 的 valueOf 方法所执行的那样。

valueOf 返回一个 Double 实例,如果已缓存,您将获得相同的缓存实例。

返回一个 Double 实例,该实例表示指定的双精度值。如果不需要新的 Double 实例,则通常应优先使用此方法而不是构造函数 Double(double),因为此方法可能会通过缓存频繁请求的值来显著提高空间和时间性能。

若要避免创建新的 Double 对象实例的开销,通常应使用 valueOf


答案 2

Double.parseDouble(String)将返回基元类型。 将返回类型的包装器对象。doubleDouble.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)