簡體   English   中英

將final和non final int變量相乘有什么區別?

[英]What is the difference between multiplying final and non final int variables?

考慮一下此代碼段

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的線有什么區別?

區別在於,由於number1number2是常數,因此在編譯時執行product1所需的乘法。

用於計算product2在執行期間被編譯,隨着值number3number4可以改變。 實際上,您可以更改值,然后再次調用main

有關常量表達式和常量變量的更多信息,請參見JLS的15.284.12.4

沒有區別, product1product2都等於30。

收到您的消息是因為您不能在沒有任何解釋的情況下發布代碼聲明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM