日期:2014-05-20  浏览次数:20686 次

java中equals()方法和==比较
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));
    }

}
运行结果:
true
true