这是一个概念性问题。我知道字符串是不变的;它们的值在创建后无法更改。考虑一下这个声明 -
private final static String ABC = "abc";
vs
private final String ABC = "abc";
为什么第一个在性能方面更好?
如果ABC的值没有在课堂上直接更新,为什么需要第二个呢?
提前致谢。
答案 0 :(得分:1)
第一个是〜更好〜因为你在所有实例中都没有额外的String
引用。因为它们都是常量表达式,所以在类字节代码(使用它们的值)中会得到相同的行为。
如果在任何地方使用反射,还有一些差异需要考虑。
答案 1 :(得分:1)
第一个只为你的班级的所有实例创建一个副本。但是第二个为每个实例创建ABC。
可以在没有对象本身的情况下调用第一个。