Java字节码中jsr_w和宽指令之间的区别是什么?

时间:2018-04-30 12:58:30

标签: java jvm bytecode

根据Java字节码规范9,wide指令修改另一条指令的行为。因此,指令可以将某些输入数据的大小(例如,索引)扩展到常量池中。但是,规范还提供了jsr_w。 jsr_wwide jsr结合使用的主要区别是什么?

1 个答案:

答案 0 :(得分:3)

没有wide jsr这样的事情。 wide只能与iload,fload,aload,lload,dload,istore,fstore,astore,lstore,dstore,ret和iinc一起使用。

从技术上讲,也不存在jsr_wide这样的事情,但有jsr_w,这是jsr的广泛变体。同样,还有gotogoto_w

所以回答这个问题,其中一个是非法的,另一个是jsr指令使用更大的跳跃偏移的可接受方式。