我想看看这段代码的字节码
if (3 < 5) {
}
使用 javap -c 。但由于某种原因,它没有显示步骤。ex int a; 工作正常。
任何想法如何在字节码中看到这个?
我想看看这段代码的字节码
if (3 < 5) {
}
使用 javap -c 。但由于某种原因,它没有显示步骤。ex int a; 工作正常。
任何想法如何在字节码中看到这个?
编译器并不像你想象的那么愚蠢。您尝试在字节码中看到的块是:
这意味着编译器会将其完全排除在字节码之外。
尝试以下操作:
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
如果您想知道,如果没有完全优化,将生成的字节码类似于
iconst_3
iconst_5
if_icmpge (offset)
javap -c:打印每个指定类中每个方法的 Java 虚拟机指令。此选项反汇编所有方法,包括私有方法。
由于您的块中没有任何内容并且条件始终为真,您可能看不到字节码。