public class A { public static void main(String[]args){
A a1 =new A();
A a2 =new A();
System.out.println(a1.equals(a2));
}}
为什么会返回false,在什么情况下可以让new的两个对象相等
A a1 =new A();
A a2 =new A();
System.out.println(a1.equals(a2));
}}
为什么会返回false,在什么情况下可以让new的两个对象相等
==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
Eg:s1 = new String("sony"); //创建的是字符串对象
s1.equals("sony"); //返回
trues1 == "sony" //返回false
//如果
s1 = "sony";
s1 == "sony" //返回true
但是new出来的保存在不同的内存中所以不equals
只有重写equals方法和hashcode方法