字符串对象平等

时间:2016-04-12 05:39:53

标签: java string

为什么使用相等运算符&#39; ==&#39;进行比较时,使用具有相同字符串文字的String类构造函数声明的两个字符串对象不相等,但是当通过指定相同的字符串文字直接声明时,它们是相等的。< / p>

String s1 = new String("hello");
String s2 = new String("hello");
Boolean result1 = (s1 == s2);// returns false

String s3 = "hello";
String s4 = "hello";
Boolean result2 = (s3 == s4);// returns true

1 个答案:

答案 0 :(得分:0)

enter image description here s1和s2是2个不同的对象,因此引用不相等

在s3期间,在String池中创建对象,在s4期间没有创建新对象,因为hello已经存在。所以s4仅指向hello对象存在池。

现在,s3和s4都指向同一个对象,因此引用相同。

如您所知==检查引用,使其返回true