【发布时间】:2014-11-21 23:39:47
【问题描述】:
这是一个概念性问题。我知道字符串是不变的;它们的值在创建后无法更改。考虑这个声明 -
private final static String ABC = "abc";
对
private final String ABC = "abc";
为什么第一个在性能方面更好?
如果 ABC 的值没有直接在类中的任何地方更新,是否有任何理由需要第二个?
提前致谢。
【问题讨论】:
-
你了解
static和非static的区别吗? -
字符串是不可变的,但不一定是常量。
-
@oliver Charlesworth - 是的,我了解静态和非静态之间的区别。这个问题是针对 STRINGS 的。感谢所有将问题标记为重复但作为重复提供的链接没有回答我的问题的人。
-
@iamnotmaynard - 请参考此链接 - “字符串是常量;它们的值在创建后无法更改。字符串缓冲区支持可变字符串。因为字符串对象是不可变的,所以它们可以共享。例如:" docs.oracle.com/javase/7/docs/api/java/lang/String.html 重要的是不要将 Java 中的 String 视为任何其他数据类型。这是大多数开发人员不注意的事情。我试图让我的基础知识正确。