返回数字时应该显式指定返回类型吗?

时间:2017-10-11 14:28:49

标签: java performance

考虑一些返回double的方法。在某些情况下,我需要返回默认的零值。我可以明确地将其指定为return 0d,但java允许我们使用自动转换将其指定为return 0

这种类型的转换是在编译时还是在运行时发生的?不指定类型(例如性能)是否会产生任何潜在的负面影响?

1 个答案:

答案 0 :(得分:7)

它被称为widening primitive conversion。我没有理由使用0d而不是0:它是constant expression,因此编译器会自动将其转换为0d

如果您查看返回0与返回0d的字节码:

double a() { return 0; }
double b() { return 0d; }

你可以看到它完全一样:

  double a();
    Code:
       0: dconst_0
       1: dreturn

  double b();
    Code:
       0: dconst_0
       1: dreturn

因此不会有任何性能差异。

相关问题