浏览 2154 次
锁定老帖子 主题:class文件编译陷阱
精华帖 (0) :: 良好帖 (1) :: 新手帖 (12) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-18
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-05-18
你给一个方法去get就不同啦
|
|
返回顶楼 | |
发表时间:2012-05-18
chenchuan 写道 在项目开发中我们经常应用第三方的jar包到自己的项目中,最近在做开发的时候发现一个问题,当我改变了一个jar里面的某一个类里面的一个静态常量的值,然后只把这个一个类class放入jar里面覆盖原来的class,但是再使用使用过程中发现其他地方引用的并没有改变成我改的值,后来反编译发现原来是直接这种情况在编译成class的时候是直接将对应的值编译在class里面而不是一个引用,想这种情况,如果要改变 我们需要把所有使用当的地方全部从新编译覆盖
这个是编译器做的优化, 这样可以减少寻找变量的开销,加快速度(想想一次调用的时间可以忽略,如果一天调用几千万次的时间就变得可见了 ), 好像有一个开关可以做控制的,有点忘了; 编译器从性能上考虑有很多的优化我们是不知道的, 如果发布是jar包发布的话, 更改了最好也是用jar包进行替换, 否则有时会扰乱编译器优化的结果. |
|
返回顶楼 | |
发表时间:2012-05-20
这个属于基本知识。
|
|
返回顶楼 | |
发表时间:2012-05-21
我就吃过一次跟楼主一样的亏...
|
|
返回顶楼 | |
发表时间:2012-05-21
woshiykk1 写道 我就吃过一次跟楼主一样的亏...
我遇到两次 第一次是用oracle的jdevelop开发 也这样 我以为只是这个ide的问题,结果eclipse也有同样的问题 |
|
返回顶楼 | |
发表时间:2012-05-22
最后修改:2012-05-22
这个为啥投新手帖啊,我之前也遇到过这问题,当时郁闷了半天。
|
|
返回顶楼 | |