一段简单的算术代码: public class Demo { public static void main(String[] args) { int a = 1; int b = 2; int c = (a + b) * 5; } } 通过javac编译,得到Demo.class.通过javap可以看到main()方法的字节码是: Code: stack=2, locals=4, args_size=1 0: iconst_1 1: istore_1 …
通过下面这段代码来解释JVM基于栈的执行原理 4. public static int add(int a, int b) { 5. int c = 0; 6. c = a + b; 7. return c; 8. } 查看字节码的命令:javap -verbose ByteCode.class add方法的字节码如下: public static int add(int, int); descriptor: (II)I //描述方法参数为两个int类型的变量和方法的返回类型是int的 flag…