estoy tratando de aprender el código de bytes de Java y me encontré con esto: compilé este código muy simple con la opción -g
:Las variables locales en el código de bytes de Java
public class Test
{
public static void main(String args[])
{
double a = 1.0;
int b = (int)a;
}
}
El código principal resultó ser:
0 dconst_1
1 dstore_1
2 dload_1
3 d2i
4 istore_3
5 return
Además, las variables locales máximas de main son 4 y LocalVariableTable tiene solo 3 entradas (args, a, b). Tengo curiosidad por saber por qué el compilador reservó 4 variables locales mientras que claramente hay solo 3, y no se usa localvariable[2]
. ¿Se me escapa algo? Gracias