今天遇到了一個問題,CSDN大哥大姐們幫幫忙。。。。。。。
我在Constant 類里面定義 定義了一個靜態變數
public static final int PAGER_SIZE = 15;
今天由于業務需求,我修改一下public static final int PAGER_SIZE = 12,然后把Constant類編譯成 class檔案,更新到tomcat服務器,重啟服務器可是PAGER_SIZE的直還是15,替換好幾遍,重啟好幾遍tomcat都還是15,然后把整個專案全刪了,重新部署上去才生效。
專案用的是 spring+springmvc框架,請問這個問題怎么解決。
uj5u.com熱心網友回復:
沒人嗎?別沉啊uj5u.com熱心網友回復:
沒人回答嗎?uj5u.com熱心網友回復:
我也遇到了,tomcat8,jdk1.8 在一個類里面定義了一個static final的常量,修改了常量值編譯后放入tomcat重啟,訪問依舊是之前的值,也是醉了,刪快取無用,只能關閉tomcat等段時間啟動才行..uj5u.com熱心網友回復:
知道如何解決這個問題了,這個問題相當坑,如果修改了static final的常量,需要替換修改的.class檔案,以及呼叫過該常量所有的.class,具體原因暫時不太了解。uj5u.com熱心網友回復:
靜態變數在編譯后,會直接寫入到參考的地方!Constant 類里面定義 定義了一個靜態變數 public static final int PAGER_SIZE = 15;
業務類里面這樣使用:String temp = “Love”+Constant.PAGER_SIZE;
實際編譯后,結果為:String temp = “Love15”; //編譯器已經對代碼做了優化,你修改PAGER_SIZE 是沒用的
uj5u.com熱心網友回復:
問題不是出在靜態變數。而是final上。final修飾得變數。在被參考后直接會在參考的地方寫死。你直更新了變數。參考過的地方因為已經寫死了。自然不會變轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/268489.html
標籤:應用服務器
上一篇:求助 。。img標簽引入圖片,直接用瀏覽器打開html檔案可以顯示圖片,啟動服務訪問之后圖片顯示不出來是為啥啊?少了啥么
下一篇:關于eslint 報錯的問題
