技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Java --> Java 常量值修改后不起作用

Java 常量值修改后不起作用

浏览:2757次  出处信息

   几个月之前,一位朋友很郁闷地找我,说 Java 做的网站调整了一个参数,本地测试没有问题,但是 commit 代码之后在服务器上 check out,就不起作用。

   我通过 svn 看了一下两个版本的差异,发现朋友修改的是一个 static final 的变量,情况就开始明了了。检查一下,使用该常量的地方是在另一个 Java 文件的另一个类中,因为该文件没有被修改,所以没有重新编译生成新的 .class 文件。而 Java 编译器编译的时候,是直接把常量的值编译进 byte code 里的,运行时不会再有变量引用。删除这个过时的 .class 文件重新编译,一切都正常了。

   Eclipse 使用的是自带的 Java 编译器,所以它编译的细节处理会跟 Sun 的(现在成 Oracle 了)有所区别。或者是因为 Eclipse 编译时是 Debug 的模式吧。

   对新手来说,一不小心掉进这个陷阱,可能花好久才能挣扎出来……

建议继续学习:

  1. Java技术路线    (阅读:6808)
  2. 神秘常量复出!用0x077CB531计算末尾0的个数    (阅读:5213)
  3. 将数组定义为常量    (阅读:4546)
  4. Java应用运维    (阅读:3708)
  5. Java陷阱(2010版)    (阅读:3194)
  6. Java将Object对象转换为String的总结合集    (阅读:2898)
  7. Java的那些事儿    (阅读:2708)
  8. Eclipse Xtend对Java说:我帮你瘦身    (阅读:2596)
  9. Java泛型简明教程    (阅读:2582)
  10. 五四陈透过PHP看JAVA系列:strtotime    (阅读:2227)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1