1、==既可以比较基本类型,也可以比较引用类型。对于基本类型就是比较值,是否相等。对于引用类型就是比较内存的地址。
2、equals的话,它是属于java.lang.Object类里面的方法,如果该方法没有被重写过默认也是==。
(可以看到String等类的equals方法是被重写过的,而且String类在日常开发中用的比较多,久而久之,形成了equals是比较值的错误观点)。
3、具体要看自定义类有没有重写Object的方法来判断。
4、通常情况,重写equals方法,会比较类中的相应属性是否都相等。
5、通常情况下,自定义类如果要使用equals 比较对象实体(属性值)是否相同,需要对equals进行重写
public class testObj{ public static void main(String[] args){ //==运算符 equals方法 int i=10; int j=10; double d=10.0; //System.out.println(i==d);//true char c=10; //System.out.println(i==c);//TRUE Customer cust1=new Customer("djalei",21); Customer cust2=new Customer("djalei",21); //System.out.println(cust1==cust2);//false 地址不同。 String str1=new String("alei"); String str2=new String("alei"); System.out.println(str1==str2);//false System.out.println(cust1.equals(cust2));//false System.out.println(str1.equals(str2));//重写了的 //equlas() //只适用于引用数据类型 // } }