一、值类型
——没有equals方法,只有==
int a = 10;
int b = 10;
if(a==b)
System.out.print(“值相等”);
“==”对于基本数据类型,判断两变量是否值相等。 ==运行速度更快。
二、引用类型
——==判断是否是同一个对象
Student s1 = new Student();
Student s2 = new Student();
Student s3 = s1;
if(s1==s3)
System.out.print(“s1和s3指向同一个对象”);
a与b是两个不同的变量,虽然值相等,但在内存中占用两个不同位置,内存地址不同。
三、引用类型
——equals判断的是两者的内容是否相同
“equals”不能用于基本数据类型,只能用于类变量。
对于基本数据类型int要用其包装类Integer。
升级例子:
首先Student只有id和name两个属性,且没有重写equals方法
然后Student只有id和name两个属性,而且还重写了equals方法
此时得到的结果就变成了:
equals用来比较的是两个对象的内容是否相等,
所有的类都是继承自java.lang.Object类的,对于所有对象而言,调用的equals方法仍然是Object类中的,在Object类中equals方法与==等效。
所以此时需要重写equals方法。