假设我在C代码中有类似的内容。我知道您可以使用#define
代替,以使编译器不对其进行编译,但是出于好奇,我问编译器是否也可以解决此问题。
我认为这对于Java编译器甚至更为重要,因为它不支持#define
。
const int CONDITION = 0;
........
// Will the compiler compile this?
if ( CONDITION )
{
}
.......
最佳答案
在Java中,if内的代码甚至都不是已编译代码的一部分。它必须进行编译,但不会写入已编译的字节码中。它实际上取决于编译器,但我不知道没有对它进行优化的编译器。规则在the JLS中定义:
不了解C。
关于java - 编译器会优化吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7122723/