美文网首页JVM
JVM - 基于栈的解释器的执行过程

JVM - 基于栈的解释器的执行过程

作者: HRocky | 来源:发表于2018-08-29 10:49 被阅读0次

1. 实验代码

public int calc() {
    int a = 100;
    int b = 200;
    int c = 300;
    return (a+b) * c;
}

2. 编译后的字节码片段

 public int calc();
    descriptor: ()I
    flags: ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
         0: bipush        100
         2: istore_1
         3: sipush        200
         6: istore_2
         7: sipush        300
        10: istore_3
        11: iload_1
        12: iload_2
        13: iadd
        14: iload_3
        15: imul
        16: ireturn

3. 执行过程

javap提示这段代码需要深度为2的操作数栈和4个Slot的局部变量空间。


执行偏移地址为0的指令的情况.png
执行偏移地址为1的指令的情况.png
执行偏移地址为11的指令的情况.png
执行偏移地址为12的指令的情况.png
执行偏移地址为13的指令的情况.png
执行偏移地址为14的指令的情况.png
执行偏移地址为16的指令的情况.png

相关文章

  • JVM - 基于栈的解释器的执行过程

    1. 实验代码 2. 编译后的字节码片段 3. 执行过程 javap提示这段代码需要深度为2的操作数栈和4个Slo...

  • JVM-从字节码到运行时(2)

    JVM-从字节码到运行时(2) 基于栈的解释器执行过程 这是例子ByteCodeDemo类中的add(int z)...

  • [虚拟机字节码执行引擎]3——方法执行

    本文主要内容 解释执行 基于栈的指令集与基于寄存器的指令集 基于栈的解释器执行过程 上一篇文章学习了方法调用过程,...

  • 基于栈的解释器执行过程

    Java 代码 字节码指令 执行过程字节码指令中表明了这段代码需要深度为2的操作数栈和4个Slot的局部变量空间 ...

  • JVM基于栈的解释器执行原理

    继上一篇字节码分析finally块对return返回值的影响,好多人对局部变量表和操作数栈之间的关系搞不清楚,下面...

  • 虚拟机字节码执行引擎

    所谓的「虚拟机字节码执行引擎」其实就是 JVM 根据 Class 文件中给出的字节码指令,基于栈解释器的一种执行机...

  • 12.基于栈的指令集与基于寄存器的指令集

    通过一个算术代码来了解栈的解释器执行过程 基于栈指令集Demo 演示1+1基于栈的指令集 两条iconst_1指令...

  • jvm执行引擎

    类加载器:负责jar文件读取,class解析、校验、链接; jvm运行时引擎:实现基于栈的处理器模型; 解释器:字...

  • JVM堆栈执行原理

    为保持通用性,JVM基于栈模型执行指令。 JVM数据操作指令也是基于栈。 方法的调用执行类似于深度遍历,沿着某一条...

  • 2019-07-28-Android Dalvik,ART虚拟机

    一,DVM和JVM的区别 1,基于的架构不同, JVM是基于栈的 DVM是基于寄存器的,它没有基于栈的虚拟机复制数...

网友评论

    本文标题:JVM - 基于栈的解释器的执行过程

    本文链接:https://www.haomeiwen.com/subject/apdhwftx.html