JVM助记符

JVM助记符:
ldc:表示将int,float或者String类型的常量值从常量池中推送至栈顶
bipush:表示将单字节byte(-128 – 127)的常量值推送至栈顶;
sipush :表示将一个短整型short(-32768 – 32767) 的常量值推送至栈顶;
iconst_1 :表示将int类型的1推送至栈顶(iconst_m1 – iconst_5),iconst_m1表示 -1
anewarray :创建一个引用类型(如类,接口,数组)的数组,并将其引用值压入栈顶
newarray : 创建一个基本类型(如int,float,short,byte等)的数组,并将其引用值压入栈顶
new:创建新的对象,并将其压入栈顶
dup:将栈顶元素复制一份再压入栈顶(如Object obj = new Object(),在new 指令后会有一个dup指令,因为new指令在堆上为对象分配了内存空间后,会将对上的内存地址压入操作数栈,但是后续会跟着调用方法,这里会使用该内存地址对对象进行初始化,然后pop出栈,同时还会将对象的内存地址赋值给obj,所以这里会两次使用堆上的内存地址,如果不执行dup指令,则只有一个地址)
astore_n:将引用存储到一个局部变量中,并存放在局部变量表中索引为n的位置
aload_n:从局部变量表索引为n的位置加载一个引用
istore_n:同astore_n,表示int类型
iload_n:同aload_n,表示int类型
pop : 将操作数栈最顶层的数据弹出
invokespecial:调用自己的私有方法、构造方法()以及父类的方法
invokeinterface:jdk1.8之后引入的;调用接口中的方法,实际上是在运行期决定的,决定到底调用实现该接口的哪个对象的特定方法。
invokestatic :调用静态方法
invokevirtual:调用虚方法。Java语言中是不存在的,但是在字节码中存在,运行期动态查找的过程
invokedynamic:动态调用方法。jdk1.7引入的,如调用JavaScript的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值