我想看看这段代码的字节码
if (3 < 5) {
}
使用javap -c。但由于某种原因,它没有显示步骤。 e.x int a;工作正常。
如何在字节码中看到这个想法?
答案 0 :(得分:1)
编译器并不像你想象的那么愚蠢。您尝试在字节代码中看到的块是:
这意味着编译器将完全从字节代码中删除它。
尝试以下方法:
int a = 3;
if(a < 5)
{
a = 3 + 5;
}
您将在字节代码中获得以下汇编指令:
0: iconst_3
1: istore_1
2: iload_1
3: iconst_5
4: if_icmpge 10
7: bipush 8
9: istore_1
10: return
答案 1 :(得分:0)
javap -c :为每个指定类中的每个方法打印Java虚拟机指令。此选项可以反汇编 所有方法,包括私有方法。
由于您的块中没有任何内容,并且条件始终为真,您可能看不到字节代码。
答案 2 :(得分:0)
如果你想知道,如果它没有完全优化就会生成的字节码就像是
iconst_3
iconst_5
if_icmpge (offset)