【发布时间】:2018-05-02 05:01:00
【问题描述】:
在 Java 中,比较何时计算为布尔值?它是在运行时还是在编译时? 例如,想象一下:
int x = 6;
if (x > 7) { doSth(); }
编译后会在字节码中表示为“x > 7”还是表示为布尔值“false”?
【问题讨论】:
-
取决于编译器。一些聪明的编译器可能会在编译时对此进行评估。其他人将允许这种情况在运行时发生。
-
我会在上面补充一点,如果你在
if块内添加一个断点,如果你调试但不能进入,那么这可能意味着编译器完全优化了if挡住。
标签: java boolean comparison