Object中的equals()方法默认是按地址比较,而不按内容进行比较。
这和关系运算符“==”在进行对象比较时没有区别了,但是经常说==两边
对象是按地址在比较,而equals()是按内容在比较,这是怎么回事???
像String s1="回家了";
String s2="回家了";
s1.equals(s2),返回值是true
而
String s1=new String("回家了")
String s2=new String("回家了")
s1.equals(s2),返回值是false
这个有该怎么解释???
------解决方案--------------------
- Java code
package cn.test;public class StringEqualsTest { public static void main(String[] args) { String str1 = "回家了"; String str2 = "回家了"; String str3 = new String("回家了"); String str4 = new String("回家了"); System.out.println(str1.equals(str2)); System.out.println(str3.equals(str4)); }}运行结果:truetrue