==和equals的区别

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()
		//只适用于引用数据类型
		//
	}
}

  

posted @ 2021-07-17 15:47  雷雷提  阅读(137)  评论(0编辑  收藏  举报