java 字节码中的局部变量
我正在尝试学习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]