java - Java 字节码中的奇怪模式

标签 java bytecode decompiling

我一直在研究一些 Java 字节码,并且不断在其中发现一种奇怪的模式,我似乎无法将其转换为任何合理的 Java 构造:

    if ( <cond1> )
        goto Label;

    do {
        <code1>
Label:
        <code2>
    } while ( <cond2> );

是否有任何合理的 Java 结构可以反编译成这个结构?我能想到的是非常复杂的模式,这些模式引入了额外的状态来跟踪它是否是循环的第一次迭代。

最佳答案

for (init condition for which cond2 reduces to cond1; cond2; code1) {
  code2;
}

关于java - Java 字节码中的奇怪模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11302716/

相关文章:

java - 使用 Java var 关键字的缺点

scala - 为什么隐式值类有一个额外的方法调用?

java - 为一元非表达式生成 JVM 字节码

assembly - 比较两个二进制文件

java - 将 Java Swing 应用程序转换为 Eclipse 插件

java - 如何在java中重复代码

java - 反编译后我的 Java 文件包含字节代码

java - 为什么 .jar 文件中的 .classes 文件的名称看起来很奇怪?

java - Javadoc 工具是否有版本控制过程?

java - 获取RadioButton的值