==与equals的区别
相同点:
1、 == 和equals都是用于完成比较操作
2、 == 和equals的判定结果都是boolean值(true或false)
不同点:
1、 == 是个运算符,本质上用于比较两个值是否相等
2、
- 使用 == 运算符比较的值可以是基本类型的值,也可以是引用类型的值
- 使用 == 运算符可以比较两个变量中存储的值是否相等
- 使用 == 运算符可以直接比较两个字面量是否相等
3、equals是个方法,用于比较当前对象是否与另一个对象相等
4、
- 当前对象通过自己的equals方法与另一个对象比较后返回true时就认为当前对象与另一个对象是相等的
- 因为equals方法是Object类定义的,所以所有对象都实现了该方法
- 通常,作为Object类的子类会重写equals方法从而实现当前对象与另一个对象的比较,子类重写equals方法时通常还要重写hashCode方法
- 当子类未重写从Object继承的equals方法时,该方法内部采用==运算符直接比较当前对象的引用是否等于另一个对象的引用