这种情况有什么不同:STRING.equals(“myValue”)vs STRING ==“myValue”?

时间:2012-04-11 16:45:58

标签: java

STRING.equals("myValue")STRING == "myValue"有什么区别?

我首先使用STRING == "myValue"但我的IDE建议切换到使用.equals()。这样做有什么特别的好处吗?

3 个答案:

答案 0 :(得分:8)

是。使用==仅比较参考值; equals()函数实际检查字符串内容是否相同。

String x = new String("foo");
String y = new String("foo");
System.out.println(x == y); // prints false
System.out.println(x.equals(y)); // prints true

答案 1 :(得分:1)

我非常确定==会比较引用,而不是值,而.equals()会进行值比较。

Further reference

答案 2 :(得分:0)

是的,STRING ==" myValue"不会工作,因为它会尝试比较字符串的引用,而不是字符串本身。

.equals()方式是正确的方式,并会给你你想要的响应。