请问 new Double(double) 与 Double.valueof(double) 区别与联系? 谢谢高手指教

解决方案 »

  1.   

    有点忘记了,DOUBLE应该没有区别,Integer在0-127会使用常量缓冲
    比如,
    Integer.value(127) == Integer.value(127) 打印就是true.
      

  2.   

    看下API的说明不就知道了
    API上是这样说的:valueOf
    public static Double valueOf(double d)
    返回表示指定的 double 值的 Double 实例。如果不需要新的 Double 实例,则通常应该优先采用此方法,而不是使用构造方法 Double(double),因为该方法很可能通过缓存经常请求的值来显著提高空间和时间性能。 
      

  3.   

    JDK不是有源代码吗?看看valueof怎么实现的就知道了。
      

  4.   


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