1. 程式人生 > 其它 >Java 中的編譯期常量是什麼?使用它有什麼風險?

Java 中的編譯期常量是什麼?使用它有什麼風險?

編譯期常量指的就是程式在編譯時就能確定這個常量的具體值
非編譯期常量就是程式在執行時才能確定常量的值,因此也稱為執行時常量
定義上來說,宣告為final型別的基本型別或String型別並直接賦值(非運算)的變數就是編譯期常量,即:

//編譯時常量
final int i = 4;
final String str = "dasd";

// 非編譯期常量
final String str1 = new String("dasd");


Random rand = new Random(47);
//這個也是非編譯期常量,為執行時常量
final int i4 = rand.nextInt(20);

提示:

這種方式存在的一個問題是你使用了一個內部的或第三方庫中的公有編譯時常量,但是這個值後面被其他人改變了,部署了一個新的jar,但是你的客戶端仍然在使用老的值。為了避免這種情況,當你在更新依賴 JAR 檔案時,確保重新編譯你的程式。這裡的更新JAR檔案,重新編譯程式是為了更新你使用的編譯期常量的值!

————————————————
版權宣告:本文為CSDN博主「弗蘭隨風小歡」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/qq_32575047/article/details/78846264