java static静态变量缓存问题

笨蛋码农 2017-02-23 04:44:59
今天遇到了一个问题,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框架,请问这个问题怎么解决。
...全文
1211 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_51925888 2021-03-15
  • 打赏
  • 举报
回复
问题不是出在静态变量。而是final上。final修饰得变量。在被引用后直接会在引用的地方写死。你直更新了变量。引用过的地方因为已经写死了。自然不会变
greenhills555 2018-03-20
  • 打赏
  • 举报
回复
静态变量在编译后,会直接写入到引用的地方! Constant 类里面定义 定义了一个静态变量 public static final int PAGER_SIZE = 15; 业务类里面这样使用:String temp = “Love”+Constant.PAGER_SIZE; 实际编译后,结果为:String temp = “Love15”; //编译器已经对代码做了优化,你修改PAGER_SIZE 是没用的
HuNanPengdake 2017-03-31
  • 打赏
  • 举报
回复
知道如何解决这个问题了,这个问题相当坑,如果修改了static final的常量,需要替换修改的.class文件,以及调用过该常量所有的.class,具体原因暂时不太了解。
HuNanPengdake 2017-03-31
  • 打赏
  • 举报
回复
我也遇到了,tomcat8,jdk1.8 在一个类里面定义了一个static final的常量,修改了常量值编译后放入tomcat重启,访问依旧是之前的值,也是醉了,删缓存无用,只能关闭tomcat等段时间启动才行..
笨蛋码农 2017-02-24
  • 打赏
  • 举报
回复
没人回答吗?
笨蛋码农 2017-02-23
  • 打赏
  • 举报
回复
没人吗?别沉啊
notepad--v3.4 windows Notepad--v3.4.0-plugin-Installer.exe 是win10下面的插件版安装包,会关联右键菜单等。 Notepad--v3.4.0-win10-portable.zip 是绿色免安装版本,解压即用,不会关联右键菜单注册表。 Ndd-quick-v3.3.0-win10-single-portable.zip 是单文件绿色免安装版,只包含皮肤和vc依赖库,不含插件、不含文件对比,主推轻量级、快速反应。适合只需要纯粹、轻快级,文本编辑器的用户。不定期发布。 MacOS 版本 Notepad--v3.4.0-mac_x64_12.3.dmg 是macos 12.x 及以后的版本。 Notepad--v3.4.0-mac_arm64_12.3.dmg 是macos 12.x 及以后 arm64 m1/m2芯片 的版本。第一次安装时,需要在设置偏好里面,放开苹果的安装限制,才能正常识别,请自行放开设置一下。 如果还是有问题,参考帖子:#I8JTJN:macOS Sonoma 14.1.1安装提示已损坏:macOS Sonoma 14.1.1安装提示已损坏 uos com.hmja.notepad_3.4.0.0_amd64.deb 是x64 cpu架构的uos系统对应的ndd版本。 其余系统版本后续会发布。 3.4 修改如下: 1 支持文件标签拖入拖出到新窗口的效果。 2 windows下修改快捷键放开。 3 按行号切分大文件。 4 大文件打开时,在文件夹查找所在目录,macos下可能会崩溃问题。 5 目录右键增加删除文件、文件夹功能。 6 补充深色主题下rust语法高亮; lisp 语法失效问题。 7 linux下信号打开文件,不拿锁,打开文件在消息队列中去做。

5,657

社区成员

发帖
与我相关
我的任务
社区描述
Web开发应用服务器相关讨论专区
社区管理员
  • 应用服务器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧