static final修饰的静态变量修改后更新到服务器,无法生效的问题。

原创 2016年08月30日 15:07:08

       今天在工作中碰到这样一个问题,有一个类作为专门的常量类,将工程中常用的一些变量定义在了里面。今天我要修改其中的某个变量。修改完后将编译好的.class文件更新到了服务器上,但是重启服务器后发现始终没有变化,还是以前的值。我就将服务器的缓存清理,然后再重启,依然没有改变。反反复复又更新上去,又清理缓存,又重启弄了好多次还是不行。

      我把服务器上的.class文件反编译,发现明明已经修改了,但是运行起来就仍然还是以前的值,感觉整个人都不好了。我就想看看是不是我调用的地方被写死了,其实没有调用到这个常量类,就把调用这个常量的类反编译了一看,果然调用的地方直接就写的是原来的那个值,而不是我修改后的值。终于恍然大悟,因为被static修饰过的类在编译的时候也就是.java转成.class的时候就已经编译到了引用这个常量的地方去了。 也就是说,如果修改了这个static修饰的常量类,那么所有引用过这个常量的地方都要编译一次后更新到服务器上去阿。。。。

    所以有些用不了一两次的常量和何必写成static的,还是要慎用。

static 静态变量加载

  • 2012年03月09日 14:04
  • 198B
  • 下载

Android开发调试-static静态变量与如何定义全局变量的问题

static修饰的静态变量,使用很方便,在不同的类和包中都可以使用,在虚拟机中单独占用内存,没错,这些都是它们的优点,不过在项目上线后,才发现static有一些不太好的地方。 在查看项目的崩溃信息时...

C/C++静态变量static详解

静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。     静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。 用法1:函...

C#学习日记20----static静态变量 与 常量

在上一篇  委托(Delegate)类型     中我定义public方法的时候使用了 static 关键字,导致后来无法通过 对象.方法名  的形式访问此方法,这一篇我们就具体学习下 stati...
  • HC666
  • HC666
  • 2015年10月11日 11:25
  • 2754

C语言 静态变量static的用法

static有两个作用 第一个作用: 修饰变量,变量又分为局部和全局变量,但他们都存在内存的静态区               静态全局变量,作用于仅限于变量被定义的文件。其他文件即使用e...
  • Z_hehe
  • Z_hehe
  • 2017年03月15日 09:55
  • 932

static 静态变量用途

java中静态变量有什么用途? 发布于2008-09-27 11:18 最佳答案 静态变量是全局变量,让每个函数都可以使用,举个例子,static doubl...
  • sugesi
  • sugesi
  • 2017年06月06日 12:42
  • 96

Java学习:Java 中的 static 使用之静态变量

大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望该类所有的对象共享同一个成员。此时就是 static 大显身手的时候了!! Jav...
  • c_s9511
  • c_s9511
  • 2017年04月21日 13:15
  • 194

全局和局部静态变量(static)解析

static声明主要特性是两点:生命周期和作用域。 我们决定使用静态局部变量还是静态全局变量所考虑的就是该变量是否需要一直存在,或者该变量是否应该被限制在某个作用域,例如某个函数或者某个源文件内。 ...

Android--慎用static静态变量

Android是用Java开发,其静态变量的生命周期遵守Java的设计。静态变量是在类被load的时候分配内存的,并且存在于方法区。当类被卸载的时候,静态变量被销毁。在PC机的客户端程序中,一个类被加...

Java中的static使用之静态变量

1.Java 中被static修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享、且优先于对象存在。静态成员可以使用类名直接访问,也可以使用对象名进行访问。使...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:static final修饰的静态变量修改后更新到服务器,无法生效的问题。
举报原因:
原因补充:

(最多只允许输入30个字)