我目前正在研究 Java 反编译器。
我阅读了 JVM 规范,我知道pop2
可以操作一个堆栈值(类别 2 值)或两个堆栈值(其他类别值)。
我只想知道什么时候pop2
可以发生两个堆栈值操作?谁能给我看一些编译结果包含两个堆栈值操作的 Java 源代码pop2
?
根据我对javac
Java 8 中编译器源代码的简要阅读,没有地方会发出 aPOP2
以从堆栈中弹出 2 个类别 1 值。如果需要弹出两个类别 1 值,则POP
编译器将发出两个字节码。
注意事项:
javac
编译器POP2
在 JIT 编译器出现之前,早期 Java 字节码编译器中使用了 的二值弹出行为是合理的。但是现在我们有JIT编译,有没有点在字节码编译器“优化”两个POP
字节码的POP2
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句