考虑一些方法返回double.在某些情况下,我需要返回默认的零值.我可以明确地将其指定为return 0d,但java允许我们将其指定为return 0自动转换.
这种类型的转换是在编译时还是在运行时发生的?不指定类型(例如性能)是否会产生任何潜在的负面影响?
它被称为扩展原始转换.没有理由使用0d过0:这是一个常量表达式,因此编译器将其转换为0d自动.
如果你查看返回0vs返回的字节码0d:
double a() { return 0; }
double b() { return 0d; }
Run Code Online (Sandbox Code Playgroud)
你可以看到它完全一样:
double a();
Code:
0: dconst_0
1: dreturn
double b();
Code:
0: dconst_0
1: dreturn
Run Code Online (Sandbox Code Playgroud)
所以没有任何性能差异.
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |