public class A {
static String s1 = "I am A";
public static void main(String[] args) {
String s2 = "I am A";
System.out.println(s1 == s2);
}
}
上面的程序输出“true”。它们是两个不同的标识符/对象,为什么输出是“true”?
我的理解是JVM会为每个对象创建不同的引用,如果是这样,那么输出怎么会是true呢?
equals
:-)。当人们轻描淡写地发布关于字符串驻留的内容时,我总是感到紧张... 显然答案是正确的,我不怀疑这一点,但我想强调一下,虽然它解释了答案,但它不应该成为我们所依赖的东西(正如Josh Bloch指出的那样,它是一个实现细节,而不是程序员的工具)。 - Tom