gpt4 book ai didi

java - final 和非 final int 变量相乘有什么区别?

转载 作者:行者123 更新时间:2023-11-29 10:05:16 28 4
gpt4 key购买 nike

考虑这个代码片段

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 所需的乘法是在编译时作为number1number2 执行的是常数。

product2 的计算是在执行时编译的,因为 number3number4 的值可以更改。事实上,您可以更改这些值,然后再次调用 main

参见章节 15.284.12.4关于常量表达式和常量变量的更多信息的 JLS。

关于java - final 和非 final int 变量相乘有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10529203/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com