乘法最终和非最终的int变量有什么区别?

sam*_*sam 1 java

请考虑此代码段

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
   }
}
Run Code Online (Sandbox Code Playgroud)

标记为A行的行与标记为B行的行有什么区别?

Jon*_*eet 8

不同的是,所需的乘法product1是在执行编译时number1number2是常数.

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

有关常量表达式和常量变量的更多信息,请参见JLS的15.284.12.4节.

  • @EranMedan:很棒!总是很乐意转身:) (2认同)