我之前曾问过一个关于比较2个字符串的问题,并且被告知我应该总是使用.equals。
但是,我不明白为什么这样可行:
String y= "Mary";
String x= "Mary";
System.out.print(x==y);
这将打印为真,我不明白为什么。
答案 0 :(得分:2)
因为这两个String具有相同的引用标识,这是因为它们来自String intern池。如果你要向其中一个添加new String()
,就像这样 -
String y= "Mary";
String x= new String("Mary");
System.out.print(x==y);
你会得到false
。