JVM 字节码指令

Java虚拟机栈由:局部变量表、操作数栈

 

局部变量表:按照索引访问, 取某一索引位置数据到操作数栈, 从操作数栈出栈到局部变量表的某一索引位置

1、如果是非static方法, 局部变量表的第0个位置是this ,如果是static方法, 则没有this

2、局部变量表, 首先存在的是方法中的参数, 然后是方法中定义的常量, 变量

 

将常量入操作数栈:

指令一:iconst_1  (下划线后只能是-1、0、1、2、3、4、5)

指令二:bipush100 (除去指令一的参数值)

 

在一个方法中,定义一个常量,执行的指令:

1、常量入操作数栈

2、操作数栈的数据出栈存放到局部变量表中

 

 

将局部变量表入操作数栈

iload_1(下划线后的参数是局部变量表的索引,从0开始)

 

将局部变量表的数据存入局部变量表:

istore_1(下划线后的参数是局部变量表的索引)

 

局部变量自增指令:iinc

 

参考:《Java虚拟机规范》阅读(二):编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值