私は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]
なく、使用されていない理由を知りたいです。足りないものはありますか?ありがとうございました