从底层源码来看,equals是object类的一个方法,和==本质上没有区别,equals就是==,两个比较的都是地址,但是String重写了equals方法,见下图,所以在String中==比较的是字符串地址是否相等,而equals比较的是两个字符串的值是否相等。
public static void k(){
//equals和==的区别 比较的都是地址,在String中equals比较的是两个字符串的值是否相等;
DemoA da1=new DemoA();
DemoA da2=new DemoA();
System.out.println(da1==da2);
System.out.println(da1.equals(da2));
}
见new就是产生了新对象,所以地址不相等。