Boolean_val 与 Boolean.TRUE(Boolean_val) 在条件语句中使用时
Boolean_val vs Boolean.TRUE(Boolean_val) when used in a conditional statement
在 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
- 值上自动装箱会导致 NullPointerException
.
另请参阅:
在 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
- 值上自动装箱会导致 NullPointerException
.
另请参阅: