好吧,假设我有一个 if 语句和一个布尔值 x:
if (x) {
// some stuff
}
这里会发生什么?这是否意味着同样的事情if(x == true)
?
Yes,
if(x) {
}
是简洁等价于
if(x == true) {
}
正如@Sotirios 指出的,它们在字节码级别上是不同的。考虑以下 Java 类:
class Test {
public void foo() {
boolean x = true;
if(x == true) {
}
}
}
emits:
public void foo();
Code:
0: iconst_1
1: istore_1
2: iload_1
3: iconst_1
4: if_icmpne 7
7: return
vs
class Test {
public void foo() {
boolean x = true;
if(x) {
}
}
}
其发出:
public void foo();
Code:
0: iconst_1
1: istore_1
2: iload_1
3: ifeq 6
6: return
我认为这对程序的性能或正确性没有任何影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)