在 java (1.8+) 以下 2 个 if 语句之间是否存在性能差异。我的代码必须在迭代中进行大量此类调用。
void test(final Boolean val) {
if (val) {
...
}
}
和
void test(final Boolean val) {
if (Boolean.TRUE.equals(val) {
...
}
}
JIT 编译器会优化掉差异吗?拆箱是否比 equals
方法调用更昂贵?
最佳答案
拆箱等于val.booleanValue()
,因此JIT应该能够inline这样的方法。
Boolean.TRUE.equals(val)
看起来更好是 null
-安全的感觉,因为 null
-value 上的自动装箱将导致 NullPointerException
。
另请参阅:
关于java - 在条件语句中使用时 Boolean_val 与 Boolean.TRUE(Boolean_val),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51779169/