在项目中,一般都有很多静态常量,静态常量往往由于访问效率比较高。不过一般会把他们放在哪呢

一:放到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()函数,不过这样其实就比直接使用变量低效了一点点咯