我对==和.equals之间的区别感到困惑,我一直在寻找答案,但仍然不太清楚。所以,我想知道是否有一个示例代码可以证明在比较两个字符串时,==和.equals会返回不同的结果。
答案 0 :(得分:2)
你在这里问两个不同的问题。没有==
返回true但equals
返回false的示例。这是不可能的。因为(作为优化)equals
检查参考标识。但即使它没有,它也会测试价值认同(这也是一样的)。
但是,有很多例子==
返回false但equals
返回true。因为==
测试引用。一个简单的例子,
String a = "A";
String b = new String(a);
System.out.println(a == b);
System.out.println(a.equals(b));