是否在编译或运行时对声明为final的java变量进行运算?

时间:2018-07-04 05:07:31

标签: java

我想知道何时在Java中进行如下计算:

float x;
if (x/2f>10f) {}

它是不是必须在每次运行时都进行除法,或者在编译阶段是否将其内联到正确的值?

我猜是后者,因为x的值可以改变吗?我说得通吗我想知道是否值得花一些时间来预先计算某些值而不是重复这些值,或者是否已经为我完成了。

您可以说,我没有任何编程方面的正规教育,我对此很好奇。

如果我使用的内联词不正确,请原谅我,因为我已经很长时间没有尝试C了。

edit:感谢您的答复,这对我来说似乎很明显,而且我很愚蠢地问,如果x的值是可变的,那么它不能在编译时出现,但是如果将其初始化并声明为final会怎样?因为我读到对文字的操作是编译时,所以常量呢...所以...

最终浮点数x = 1f; 如果(x / 2f> 10f){}

2 个答案:

答案 0 :(得分:1)

在您提供的代码片段中,假设它在方法内部,未初始化“ x”,则此步骤在编译阶段检查,计算在运行时完成。

答案 1 :(得分:0)

由于未初始化“ x”。计算将在运行时完成。

相关问题