为什么==为String比较返回true?

时间:2014-09-22 16:10:05

标签: java string

我之前曾问过一个关于比较2个字符串的问题,并且被告知我应该总是使用.equals。

但是,我不明白为什么这样可行:

 String y= "Mary";
 String x= "Mary";
 System.out.print(x==y);

这将打印为真,我不明白为什么。

1 个答案:

答案 0 :(得分:2)

因为这两个String具有相同的引用标识,这是因为它们来自String intern池。如果你要向其中一个添加new String(),就像这样 -

String y= "Mary";
String x= new String("Mary");
System.out.print(x==y);

你会得到false