Я пытаюсь изучить java-байт-код, и я наткнулся на это:
Я скомпилировал этот очень простой код с опцией -g
:
public class Test
{
public static void main(String args[])
{
double a = 1.0;
int b = (int)a;
}
}
Основной код оказался:
0 dconst_1
1 dstore_1
2 dload_1
3 d2i
4 istore_3
5 return
Кроме того, основные максимальные локальные переменные равны 4, а LocalVariableTable имеет только 3 записи (args, a, b). Мне любопытно узнать, почему компилятор зарезервировал 4 локальные переменные, в то время как явно только 3, а localvariable[2]
не используется. Есть что-то, что мне не хватает? Спасибо вам