考虑这个代码片段
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行的行有什么区别?
最佳答案
不同之处在于,product1
所需的乘法是在编译时作为number1
和number2
执行的是常数。
product2
的计算是在执行时编译的,因为 number3
和 number4
的值可以更改。事实上,您可以更改这些值,然后再次调用 main
。
关于java - final 和非 final int 变量相乘有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10529203/