我正在学习Java。当我使用==
和.equals()
进行字符串比较时,我会得到不同的结果。但是没有编译错误。谁能解释这两种操作之间的区别呢?
答案 0 :(得分:3)
s1 == s2
比较字符串引用;这很少是你想要的。s1.equals(s2)
比较两个字符序列;这几乎总是你想要的。答案 1 :(得分:1)
==
测试参考相等性。
.equals()
测试价值平等。
示例:
String fooString1 = new String("Java");
String fooString2 = new String("Java");
// false
fooString1 == fooString2;
// true
fooString1.equals(fooString2);
注意:
==
处理空字符串值。
.equals()
将导致Null Pointer Exception
答案 2 :(得分:0)
当==用于String之间的比较时,它会检查对象的引用。但是当使用equals时,它实际上会检查String的内容。例如,
String a = new String("ab");
String b = new String("ab");
if(a==b) ///will return false because both objects are stored on the different locations in memory
if(a.equals(b)) // will return true because it will check the contents of the String
我希望这有帮助