Как я понимаю в документе, функция ParseDouble сделала что-то вроде:
Double parseDouble(String s) throws ... {
return new Double(Double.valueOf(s));
}
Как я понимаю в документе, функция ParseDouble сделала что-то вроде:
Double parseDouble(String s) throws ... {
return new Double(Double.valueOf(s));
}
Логика одна и та же, но возвращаемое значение Double.valueOf() возвращает кучу выделенного Двойного объекта, где, поскольку parseDouble возвращает примитивный двойник. Пример вашего кода не совсем корректен. Источник 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
возвращает a double value
, valueOf возвращает новый object
типа Double
.
Простой,
public static double parseDouble(String s) throws NumberFormatException
возвращает примитив java double
, а
public static Double valueOf(String s) throws NumberFormatException
возвращает завернутое двойное значение в double
.
valueOf возвращает double, parseDouble возвращает Double. Используйте то, что вам подходит.
В Java 6 обратное верно:
Double valueOf(String s) throws ... { return new Double(Double.parseDouble(s)); }