Java ==和.equals()之间的差异?

Java ==和.equals()之间的差异?,java,string,Java,String,我现在正在学习Java。当我使用==和.equals进行字符串比较时,得到的结果不同。但是没有编译错误。有人能解释这两种操作之间的区别吗 s1==s2比较字符串引用;这很少是你想要的。 s1.Equals2比较两个字符序列;这几乎总是你想要的。 ==参考等式测试 .equals测试值是否相等 例如: String fooString1 = new String("Java"); String fooString2 = new String("Java"); // false fooString

我现在正在学习Java。当我使用==和.equals进行字符串比较时,得到的结果不同。但是没有编译错误。有人能解释这两种操作之间的区别吗

s1==s2比较字符串引用;这很少是你想要的。 s1.Equals2比较两个字符序列;这几乎总是你想要的。 ==参考等式测试

.equals测试值是否相等

例如:

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

// false
fooString1 == fooString2;

// true
fooString1.equals(fooString2);
注:

==处理空字符串值


空字符串中的.equals将导致空指针异常

当==用于字符串之间的比较时,它将检查对象的引用。但是当使用equals时,它实际上检查字符串的内容。比如说

  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

我希望这有帮助

谢谢Gokul。这是非常有用的。