我在eclipse中编写了这段代码:
String[] s = {"a","b"};
String d = "a";
System.out.println(s[0]==d);
它正在给予" true"作为输出。
" =="检查对象引用,如果两个对象引用同一个对象,但在这种情况下对象" d"是指不同的对象和" s [0]"为了与众不同,他们为何如此平等。
答案 0 :(得分:0)
"a"
将在JVM使用的字符串池中创建。
作为优化,只会创建该字符串的一个实例。 Java可以这样做,因为字符串不可变。这就是引用引用相同底层对象的原因,因此在这个特定实例中,引用比较相等。