请考虑下面的代码片段
public class ConstantFolding {
static final int number1 = 5;
static final int number2 = 6;
static int number3 = 5;
static int number4 = 6;
public static void main(String[ ] args) {
int product1 = number1 * number2; //line A
int product2 = number3 * number4; //line B
}
}标记为行A的行和标记为行B的行之间有什么区别?
发布于 2012-05-10 15:24:42
不同之处在于,product1所需的乘法是在编译时执行的,因为number1和number2是常量。
product2的计算是在执行时编译的,因为number3和number4的值可以更改。实际上,您可以更改这些值,然后再次调用main。
有关常量表达式和常量变量的更多信息,请参阅JLS第15.28和4.12.4节。
发布于 2012-05-10 15:24:15
没有区别,product1和product2都等于30。
这条消息打击了你,因为你不能在没有任何解释的情况下发布代码语句。
https://stackoverflow.com/questions/10529203
复制相似问题