Java 常量值修改后不起作用
浏览:2782次 出处信息
几个月之前,一位朋友很郁闷地找我,说 Java 做的网站调整了一个参数,本地测试没有问题,但是 commit 代码之后在服务器上 check out,就不起作用。
我通过 svn 看了一下两个版本的差异,发现朋友修改的是一个 static final 的变量,情况就开始明了了。检查一下,使用该常量的地方是在另一个 Java 文件的另一个类中,因为该文件没有被修改,所以没有重新编译生成新的 .class 文件。而 Java 编译器编译的时候,是直接把常量的值编译进 byte code 里的,运行时不会再有变量引用。删除这个过时的 .class 文件重新编译,一切都正常了。
Eclipse 使用的是自带的 Java 编译器,所以它编译的细节处理会跟 Sun 的(现在成 Oracle 了)有所区别。或者是因为 Eclipse 编译时是 Debug 的模式吧。
对新手来说,一不小心掉进这个陷阱,可能花好久才能挣扎出来……
建议继续学习:
- Java技术路线 (阅读:6849)
- 神秘常量复出!用0x077CB531计算末尾0的个数 (阅读:5230)
- 将数组定义为常量 (阅读:4563)
- Java应用运维 (阅读:3736)
- Java陷阱(2010版) (阅读:3224)
- Java将Object对象转换为String的总结合集 (阅读:2923)
- Java的那些事儿 (阅读:2740)
- Eclipse Xtend对Java说:我帮你瘦身 (阅读:2618)
- Java泛型简明教程 (阅读:2612)
- 五四陈透过PHP看JAVA系列:strtotime (阅读:2251)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:五四陈透过PHP看JAVA系列:strtotime
后一篇:Java陷阱(2010版) >>
文章信息
- 作者:qingbo.blog 来源: qingbo.blog
- 标签: Java 常量
- 发布时间:2010-10-07 08:07:42
建议继续学习
近3天十大热文
- [56] Oracle MTS模式下 进程地址与会话信
- [56] IOS安全–浅谈关于IOS加固的几种方法
- [55] 如何拿下简短的域名
- [54] 图书馆的世界纪录
- [52] android 开发入门
- [52] Go Reflect 性能
- [50] 读书笔记-壹百度:百度十年千倍的29条法则
- [49] 【社会化设计】自我(self)部分――欢迎区
- [38] 程序员技术练级攻略
- [33] 视觉调整-设计师 vs. 逻辑