Double.parseDouble() 和 Double.valueOf()的区别

本文讨论了Java1.8中Double.valueOf()和Double.parseDouble()方法在处理String转换为Double时的差异,包括异常处理、性能优化和适用场景。valueOf()提供了一种缓存优化,而parseDouble()返回基本类型double并可能导致空指针异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一次代码中写了一句Double.valueOf(score) //score是一个String类型的数值时,IDEA提示我最好使用Double.parseDouble() ,那么Double.parseDouble()Double.valueOf()有什么区别呢?


在网上查了一下,介绍的并不全面而且可能已经过时了,所以直接在代码中点开官方文档说明(java 1.8版本)

Double.valueOf()

  • 有两个重载方法,分别是: Double valueOf(String)、 Double valueOf(double),他们的说明分别是(机翻):
    • valueOf(String):返回一个 Double 对象,其中包含参数字符串 s 所代表的 double 值。如果 s 为空,则会产生 NullPointerException 异常。s 中的前导和尾部空白字符将被忽略。空白字符会像使用 String.trim() 方法一样被删除;也就是说,ASCII 空格和控制字符都会被删除。

      同时该方法在无法解析字符串时会抛出NumberFormatException异常。

    • valueOf(double d):返回代表指定 double 值的 Double 实例。如果不需要新的Double 实例,一般应优先使用此方法,而不是构造函数 Double(double),因为此方法通过缓存经常请求的值,可能会大大提高空间和时间性能。

Double.parseDouble()

  • Double.parseDouble()只能接收字符串类型的参数,返回值是基本类型double,同样会抛出NumberFormatException异常:返回一个初始化为指定字符串所代表值的新 double,该值由类 DoublevalueOf 方法执行。
    • public static double parseDouble(String s) throws NumberFormatException
    • 参数:s - 要解析的字符串。
    • 返回值:字符串参数代表的 double 值。
    • 抛出:
      • NullPointerException - 如果字符串为空
      • NumberFormatException - 如果字符串不包含可解析的 double。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值