运行时数据区

image-20200823143449593https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf

image-20200823191110480

image-20200823193502247 image-20200823193704028
  • start PC + Length 表示它的作用域

image-20200823194402871

image-20200823194508084

  • 栈是管运行的,堆是馆数据存储的
image-20200823195111314

执行引擎会将字节码指令翻译成机器指令去执行

image-20200823195344228

  • 操作数栈用数组实现

stack=2 表示操作数栈的深度

locals=3表示局部变量表中元素个数,他俩都是数组实现。

istore_1 从操作数栈中取出放到局部变量表slot为1的位置,是出栈的操作,操作数栈中原来的数没有了。

iload_1 局部变量表还有。

image-20200823201132772

image-20200823201309200
  • 第3类问题 代码不怎么写
image-20200823201335971
  • 第4个 有点恶心

答:老师讲 第一类问题 字节码是一样的。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!