什么是java中的编译时常量表达式?

时间:2015-11-16 13:40:56

标签: java

我已经读过java中的最终变量应该被实例化以编译时间常量表达式。我无法理解什么是编译时常量表达式。

class A{
    int i;
    int j  = i * 5;
}

是p * 5编译时常量表达式吗?

1 个答案:

答案 0 :(得分:0)

“编译时常量表达式”是可以在编译期间计算的值。例如,int MINUTES_IN_DAY = 24 * 60;

至于你的阅读,应该始终以该形式实例化最终变量:这是一个不正确的概括。在许多情况下,您需要在运行时评估final,例如在设置Runnable时。

请注意,静态最终变量也不需要是编译时常量:您可以使用 static initialisers 初始化它们。