Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 哪个对象类转换或Double.parseDouble(字符串)更有效_Java - Fatal编程技术网

Java 哪个对象类转换或Double.parseDouble(字符串)更有效

Java 哪个对象类转换或Double.parseDouble(字符串)更有效,java,Java,类似的代码块引发了一些争论,关于代码的哪一部分最有效,或者是否有更正确的方法来实现这一点。一个论点是,强制转换比创建要解析的字符串更有效。一个论点是,多类强制转换创建的对象比创建要解析的字符串多 什么是“最佳实践” 最佳实践是最具可读性的实践。除非那段代码连续运行数万次,否则效率差异就和不存在的一样大 由于不确定它是否适用于您的应用程序,您可能需要将java.lang.Number类作为方法参数进行查看。最佳实践是最具可读性的。除非那段代码连续运行数万次,否则效率差异就和不存在的一样大 如果不确

类似的代码块引发了一些争论,关于代码的哪一部分最有效,或者是否有更正确的方法来实现这一点。一个论点是,强制转换比创建要解析的字符串更有效。一个论点是,多类强制转换创建的对象比创建要解析的字符串多

什么是“最佳实践”


最佳实践是最具可读性的实践。除非那段代码连续运行数万次,否则效率差异就和不存在的一样大


由于不确定它是否适用于您的应用程序,您可能需要将
java.lang.Number
类作为方法参数进行查看。

最佳实践是最具可读性的。除非那段代码连续运行数万次,否则效率差异就和不存在的一样大


如果不确定它是否适用于您的应用程序,您可能需要查看
java.lang.Number
类作为方法参数。

类型只不过是告诉编译器如何处理变量的一种方式,它们不会创建新对象。从数字创建字符串和将字符串解析回数字都非常昂贵。强制转换唯一的潜在问题是类型安全性,您可以通过instanceof来处理它


作为旁注,第一部分中加倍的额外强制转换是无关的。

类型只不过是告诉编译器如何处理变量的一种方式,它们不会创建新对象。从数字创建字符串和将字符串解析回数字都非常昂贵。强制转换唯一的潜在问题是类型安全性,您可以通过instanceof来处理它


作为旁注,第一部分中加倍的额外转换是无关的。

最有效且可能最快的是使用Number.doubleValue和double.parseDouble

if(some_num_obj instanceof Number)
    some_num = ((Number) some_num_obj).doubleValue();
else
    some_name = Double.parseDouble(some_num_obj.toString());

使用Number.doubleValue和Double.parseDouble可能是最有效、最快的方法

if(some_num_obj instanceof Number)
    some_num = ((Number) some_num_obj).doubleValue();
else
    some_name = Double.parseDouble(some_num_obj.toString());
一个论点是,多类强制转换正在创建更多 物体

错。类强制转换不会创建任何对象

一个论点是,多类强制转换正在创建更多 物体


错。类强制转换不会创建任何对象。

为了澄清,“Object some_num_obj”是一个非空整数或双精度整数,但返回此值的api会返回一个对象。这段代码可能会运行数千次。为了澄清这一点,“objectsome_num_obj”是一个非空整数或双精度整数,但返回此值的api会返回一个对象。此代码可能会运行数千次。为什么不强制转换?Autobox+内存分配强制转换?;o(而不是解析)为什么不强制转换?Autobox+内存分配强制转换?;o(而不是解析)