所以我有一个字符串,我想用该字符串作为值创建一个 Double 对象。
我可以打电话
Double myDouble = new Double (myString);
或者我可以打电话
Double myDouble = Double.valueOf(myString);
有区别吗?我猜第一个保证在堆上创建一个新对象,第二个可能重用现有对象。
额外加分:字符串可能是null,在这种情况下我希望 Double 是null,但以上两个都抛出空指针异常。有没有写法
双 myDouble = myString == null ? null : Double.valueOf(myString);
代码更少?
最佳答案
取决于实现。 openJDK 6 b14使用 Double(String s)
的实现:
this(valueOf(s).doubleValue());
因此它在内部调用 valueOf(String s)
并且必须与直接调用该方法相比效率较低。
关于java - 调用 Double.valueOf(String s) 和 new Double(String s) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4757998/