首先,==操作符专门用来比较两个变量的值是否相等,即比较变量所对应的内存中存储的数值是否相等,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。
其次,equals方法是用于比较两个独立对象的内容是否相同。
举例说明:
String a = new String("go");
Stirng b = new String("go");
new了两个不同的对象、但是它们的内容相同。
则有:a==b 返回false、a.equals(b) 返回 true
这里 a和b储存的数值是对象指定的首地址,因为对象不同所有首地址也不同,所以a==b返回false
a 和 b对象的内容是相同的,所以a.equals(b) 返回 true。
在实际开发中,如果一个类没有自己定义equals方法,那么此类将继承Object类的equals方法,
而Object类的equals方法是如下实现的:
boolean equals(Object o){
return this==o;
}
即默认的equals方法就是使用==操作符,也就是比较两个变量指向的对象是否是同一对象。
如果想要比较两个实例内容是否相同,则需要自行重写equles方法覆盖。达到想要的结果。