考虑执行java语句
e=(a-b)+(c-d)
使用以下内容所需的最小内存访问次数是什么:
答案 0 :(得分:1)
Java代码,编译后的字节代码,我们编写的代码不会在它在JVM上执行的处理器中执行。然后,JIT编译器负责执行该操作,并且JIT中的语句e =(a-b)+(c-d)的解释对于Java程序员是隐藏的。
JVM使用堆栈架构,您可以使用javap命令查看字节码执行。
private static void test(int a, int b, int c, int d) {
int e = (a - b) + (c - d);
}
上述方法的字节代码是
private static void test(int, int, int, int);
flags: ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=4
0: iload_0
1: iload_1
2: isub
3: iload_2
4: iload_3
5: isub
6: iadd
7: istore 4
9: return
LineNumberTable:
line 36: 0
line 37: 9
LocalVariableTable:
Start Length Slot Name Signature
0 10 0 a I
0 10 1 b I
0 10 2 c I
0 10 3 d I
9 1 4 e I
根据本例中的字节代码,堆栈已被访问4次(i_load)。