永发信息网

java 中的编译期常量是什么?使用它又什么风险

答案:2  悬赏:70  手机版
解决时间 2021-02-07 06:52
java 中的编译期常量是什么?使用它又什么风险
最佳答案
编译期常量就是所谓的 public final static 常量。
由于在编译时就确定了值,在使用的场合会直接写成值。而不是直接到原来的类中读取。
这样会有一个问题。 如果 类 A 提供了常量 类B使用了常量。并都进行了编译。
然后,修改了类A的源码,调用系统进行编译。
系统发现类A是新的代码,编译了,类B是旧的代码,就不进行编译,使用旧的类。
由于类B中直接编译进了旧的值,导致类A的修改无法反映到类B中。
这样造成了风险。
全部回答
遇到的问题是想重新编译某个java文件(比如a.java),里面有个常量(比如finalinta)和上次编译时不一样,但是另一个使用a.class的a的文件(比如b.java)由于在javac在上次编译的时候将当时的a.class里面的常量直接给内联了,所以就达不到想要的效果。 如果是这样的话,对于string可以使用.intern()来防止编译器进行优化,对于其他类型,可以要么不定义为常量,要么将常量定义为private,然后使用一个static方法来返回这个常量。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
漩涡鸣人以后有几种属性的查克拉
警衔等级的设置是警衔制度的核心,警衔设( )
燕子塘地址有知道的么?有点事想过去
佳人美容院怎么去啊,我要去那办事
3.9米的沙发配多大的茶几好看
安康生猪养殖场地址在哪,我要去那里办事
邱中乔黑发育发国际连锁(余庆店)怎么去啊,我
【国库券投资】求助:算国库券的年收益率。题
人教版地理必修3填充图册答案
对开门冰箱的冷冻数字f4是什么意思?
0.5吨的燃煤锅炉一天用多少煤
中和路这个地址在什么地方,我要处理点事
丙烯颜料怎么画出渐变
【阱怎么读】“槛外人”怎么读[红](二)
乖乖女美容连锁店地址在什么地方,想过去办事
推荐资讯
下列预测方法中,能够预测该企业人力资源需求
苏州相城区太平镇君子兰沙发厂怎么去啊,有知
汾河四支路/汾河道(路口)地址有知道的么?有
《春望》表达了作者怎样的情感
宋家五金杂品店地址有知道的么?有点事想过去
停车场(创业大道)(创业大道28-4号附近停车场)
连云港墟沟有那家酒吧比较经济实惠谢谢。
蜀门里百花用什么武器 怎么加点 用什么副法宝
在平行四边形ABCD中AB=1,BC=3,∠ABC与角BCD的
本祥汽车地址在哪,我要去那里办事
生石灰能做补钙剂吗
我有病你有药是什么意思。有次我跟我同桌说话
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?