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