考虑一些返回double
的方法。在某些情况下,我需要返回默认的零值。我可以明确地将其指定为 return 0d
,但 java 允许我们将其指定为 return 0
并自动转换。
这种转换发生在编译时还是运行时?不指定类型是否有任何潜在的负面影响(例如性能)?
最佳答案
它叫做 widening primitive conversion .没有理由在 0
上使用 0d
:它是 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
因此不会有任何性能差异。
关于java - 返回数字时是否应明确指定返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46690857/