假设我在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/

10-11 15:42
查看更多