靜態常量被引用時,編譯階段即確定值

2021-08-26 13:53:31 字數 324 閱讀 3189

最近在對乙個產品出公升級補丁時遇到乙個問題,與靜態常量有關。

[b]問題現象:[/b]

產品包中有乙個product.jar,出公升級補丁時,只修改了該jar包中的乙個類中的乙個靜態常量。

改為然後嘗試重新生成完整的product.jar,新增到產品包中,新功能生效。

[b]問題原因:[/b]

開始懷疑是編譯環境jdk版本不一致導致的,於是嘗試使用相同jdk編譯,問題依舊。

後來懷疑是靜態常量導致的問題,更新靜態常量時,要同時更新引用該靜態常量的類,並確保該類已經重新編譯。因為靜態常量被引用時,在編譯期就已經確定了值,在執行期不會動態載入對應的值。

引用,指標,常量引用,常量指標,指標常量的區別

1.指標 指標代表乙個變數的位址 例如 int a 2,b 1,pi a pi b 2.引用 引用即針對乙個變數的別名,引用必須被初始化,引用作為引數 形參 時,不會像指標一樣使用儲存單元,更不會像值傳遞一樣建立該引數的副本,提高空間 時間效率。例如 int a 2,b a 3.常量引用 格式為 c...

常量和引用

溫習c 至引用部分,做如下整理。用於修飾變數,表明不能修改。常用於修飾函式引數和普通變數。常問的點有指標常量和常量指標。指標常量 int const p 表明指標p是乙個常量,指向乙個int行變數。int a int b int const p a p b 指標p不可修改常量指標 const int...

常量引用 const T

1.引用本身不是物件,只是引用物件的別名,沒有記憶體空間產生 2.引用必須嚴格型別匹配 3.而常量引用 const t 可以引用字面值常量及表示式 其實也就是右值,且常量引用的不同與t型別物件時,如果可以型別轉換則會型別轉換為t型別常量引用,不過會產生臨時變數 c primer code doubl...