Код Java, байтовый код после компиляции, мы не будем записывать в процессор, который он выполняет на JVM. Тогда ответственность JIT-компилятора заключается в том, чтобы выполнить это и интерпретировать ваше утверждение. E = (a-b) + (c-d) в JIT скрывается для 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).
Я представляю себе какой-то Java-гангстер с пистолетом у вас в голове? Вы должны отправить его в 'policoverflow' вместо:/ – Maroun
Что вы пытались? – PakkuDon
Чувак! Сделайте свою домашнюю работу. – Thom