我正试图学习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
此外,main函数的最大局部变量数量为4,而LocalVariableTable仅有3个条目(args、a和b)。我很想知道为什么编译器保留了4个局部变量,而实际上只有3个,并且localvariable [2]
未被使用。我是否遗漏了什么?谢谢