好的,所以让我说我有一个if语句和一个布尔值x:
if (x) {
// some stuff
}
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?这是否意味着同样的事情if(x == true)?
Ami*_*ani 16
是,
if(x) {
}
Run Code Online (Sandbox Code Playgroud)
是简洁的等价物
if(x == true) {
}
Run Code Online (Sandbox Code Playgroud)
正如@Sotirios指出的那样,它们在字节码级别上是不同的.考虑以下Java类:
class Test {
public void foo() {
boolean x = true;
if(x == true) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
发出:
public void foo();
Code:
0: iconst_1
1: istore_1
2: iload_1
3: iconst_1
4: if_icmpne 7
7: return
Run Code Online (Sandbox Code Playgroud)
VS
class Test {
public void foo() {
boolean x = true;
if(x) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
发出的:
public void foo();
Code:
0: iconst_1
1: istore_1
2: iload_1
3: ifeq 6
6: return
Run Code Online (Sandbox Code Playgroud)
我认为这与计划的表现或正确无关.
| 归档时间: |
|
| 查看次数: |
5560 次 |
| 最近记录: |