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

What's the difference between jsr_w and wide instructions in Java bytecode?

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

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

从技术上讲,也没有 jsr_wide 这样的东西,但是有 jsr_w,它是 jsr 的广泛变体。同样,还有 gotogoto_w.

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