对于可以内联常数(字符串,数字),编译 并 表现不同,是的。
当编译器发现一个常量表达式时,它将该常量表达式的结果嵌入到使用该常量表达式的代码中,而不是每次都对其进行计算。因此,如果您有:
public static final int FOO = 10;public static final int BAR = 5;...System.out.println(FOO * BAR);
那么常量值50将直接嵌入代码中。
请注意,这具有与之相关的版本说明警告-
如果更改
FOO或
BAR,则还需要重新编译引用它的所有内容…否则,它们仍将使用“旧”值,因为它将嵌入其字节码中。



