たとえば、メソッドの場合
public int f() {
int k = 1;
for (int i = 0; i < 10; i++) {
k += 2;
}
return k;
}
javac
次のバイトコードを生成します。
public int f();
Code:
0: iconst_1
1: istore_1
2: iconst_0
3: istore_2
4: iload_2
5: bipush 10
7: if_icmpge 19
10: iinc 1, 2
13: iinc 2, 1
16: goto 4
19: iload_1
20: ireturn
ラベル 4 では、前の命令が 3 か 16 かに関係なく、スタックのサイズは同じ (0) です。
Javaコードから生成されたバイトコードには一般的に当てはまりますか?