I am trying to learn java bytecode and I stumbled on this: I compiled this very simple code with the -g option:
public class Test
{
public static void main(String args[])
{
double a = 1.0;
int b = (int)a;
}
}
The main code turned out to be:
0 dconst_1
1 dstore_1
2 dload_1
3 d2i
4 istore_3
5 return
In addition, main's maximum local variables is 4, and the LocalVariableTable has only 3 entries (args, a, b). I am curious to know why the compiler reserved 4 local variables while there is clearly only 3, and localvariable[2] is no used. Is there something I'm missing? Thank you