请教一个问题:
我现在的程序里面定义了一个静态变量:
                   public static  String PASS = "123" ;
然后在程序里面定义了个TimeTask,每隔几分钟去刷新一下这个字段,代码如下:
 TOP_PASS = Service.findPassword(.....);
在正式环境下,刚开始能够刷新出数据:PASS="456",但是隔几天以后,发现这个值打印的结果就是123了,不知道是什么原因,不知道大家有没有碰到过的,能指点指点。

解决方案 »

  1.   

    我也觉得1楼的怀疑是最大的怀疑。或者你程序里面定义的那个TimeTask,因为某些原因又把值刷回123去了。此外就是是否有其它代码也去修改过这个值,毕竟你是public static,并没有对这个值进行任何访问保护,就意味着随便写个JSP也能修改它。
      

  2.   

    查找关键字 PASS, 看看什么地方用到了它,是否有可能修改了它的值
    如果确定没有这样的处理,那么,原因就只有1L说的,重起服务了。
      

  3.   

    Service.findPassword(.....); //不会返回 123 ?
      

  4.   

    实例销毁,类销毁,java进行垃圾回收,将内存中原有值销毁。任务调用find时重新初始化此值,所以以后得到的都是123.