Java字节码中的奇数模式
我一直在研究一些Java字节码,我一直在其中发现一个奇怪的模式,我似乎无法将其转换为任何合理的Java构造:Java字节码中的奇数模式,java,bytecode,decompiling,Java,Bytecode,Decompiling,我一直在研究一些Java字节码,我一直在其中发现一个奇怪的模式,我似乎无法将其转换为任何合理的Java构造: if ( <cond1> ) goto Label; do { <code1> Label: <code2> } while ( <cond2> ); if() 后藤标签; 做{ 标签: }while(); 是否有任何合理的Java构造可以反编译到?我所能想到的是
if ( <cond1> )
goto Label;
do {
<code1>
Label:
<code2>
} while ( <cond2> );
if()
后藤标签;
做{
标签:
}while();
是否有任何合理的Java构造可以反编译到?我所能想到的是非常复杂的模式,它引入了额外的状态来跟踪它是否是循环的第一次迭代。你知道是什么创建了这个字节码吗?谢谢,我应该选择for循环模式。我现在可以看到代码1显然是增量代码。
for (init condition for which cond2 reduces to cond1; cond2; code1) {
code2;
}