有谁知道为什么在Java 6中不推荐使用JSR / RET字节码对?
我在网上找到的唯一有意义的解释是,他们通过运行时进行代码分析更难以执行.有谁知道另一个原因?
解决方法:
由于一些正常的字节码约束(例如在进入JSR时具有一致的堆栈形状),JSR和RET使字节码验证变得更加困难.好处很小(在某些情况下可能会稍微小一些),并且验证程序在处理奇怪的JSR / RET模式(以及潜在的安全漏洞以及相关的完整验证运行时成本)方面仍存在困难,这使得它成为一个无用的功能继续拥有.
堆栈映射和由于数据而启用的轻量级验证器在类加载期间是一个巨大的性能胜利,不会牺牲安全性.