Java ==和.equals()之间的差异?
我现在正在学习Java。当我使用==和.equals进行字符串比较时,得到的结果不同。但是没有编译错误。有人能解释这两种操作之间的区别吗 s1==s2比较字符串引用;这很少是你想要的。 s1.Equals2比较两个字符序列;这几乎总是你想要的。 ==参考等式测试 .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
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。这是非常有用的。