2013-04-06 248 views
-1

我现在在学Java。当我使用==.equals()进行字符串比较时,我得到了不同的结果。但是没有编译错误。任何人都可以解释这两个操作之间的区别吗?==和.equals()之间的区别?

回答

1

==测试引用相等。

.equals()试验值相等。

例子:

String fooString1 = new String("Java"); 
String fooString2 = new String("Java"); 

// false 
fooString1 == fooString2; 

// true 
fooString1.equals(fooString2); 

注:

==处理空字符串值。

.equals()从一个空字符串将导致Null Pointer Exception当==用于字符串之间对比

+0

感谢戈库尔。这非常有用。 – 2013-04-06 15:50:20

3
  • s1 == s2比较字符串参考文献;这很少是你想要的。
  • s1.equals(s2)比较两个字符序列;这几乎总是你想要的。
0

然后它检查的对象的参考。但是当使用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 

我希望这有助于

相关问题