在项目中,一般都有很多静态常量,静态常量往往由于访问效率比较高。不过一般会把他们放在哪呢
一:放到Interface,因为 java interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量
二:放到文件,如Properties文件
三:放到Class,使用final String 。
第一跟第三种,会产生如下的问题:
那就是在Class 或者Interface定义的字符串常量 A = “a” 如果被其他类B使用了
这个时候如果想修改 A = “A” 则被之前被使用的其他类B必须重新编译才能生效
原因:常量,编译器是直接把常量赋给了B的使用处,并不是变量。所以对于常量A改变了, B使用A是不知道的。
解决方法:
private static final String a= "a";
public static String getA(){
return a;
}
B使用的时候 就调用getA()函数,不过这样其实就比直接使用变量低效了一点点咯