哪些Java编译器使用jsr指令,做什么用?

Java字节码语言具有JSR指令。

我使用Java 7编译器编译的代码均未使用此指令。

但是,有时我下载的Java二进制文件确实会使用它,尽管很少。

我很想知道哪些编译器确实使用该指令,以及哪些Java代码构造会使它们使用该指令。

这不是重复的,因为它引用了JSR字节码指令,而不是Java规范请求

回答:

实际上,Java 7类文件中甚至不允许使用JSR指令。仅在与Java

5或更早版本相对应的49.0或更早版本的类文件中才允许使用。实际上,它在那之前很久就不使用了。

JSR / RET机制最初用于实现finally块。但是,他们认为节省代码大小并不值得额外的复杂性,因此逐渐被淘汰了。

我不知道确切的版本,因为我找不到任何旧的编译器,但是根据我在网上找到的讨论,似乎这种转变发生在Java

1.2-1.3时代,不同的编译器在不同的时间切换。我从未见过这些旧编译器之一提供的合法类文件,但您永远不知道何时会发生。

实际上,我在野外看到的JSR唯一用途是用于混淆。例如,Zelix

Klassmaster曾经将其用于其字符串解密代码。我还在自己的几个Java破解程序中使用了它。

以上是 哪些Java编译器使用jsr指令,做什么用? 的全部内容, 来源链接: utcz.com/qa/398863.html

回到顶部