"==",既可以比较基本数据类型,也可以比较引用数据类型,也可以比较引用数据类型,比较基本数据类型的时候比较的是他们的值, 就好比int a = 1,int b = 2; a == b,实际上是比较1 和 2,但是在比较引用数据类型的时候,比较的是内部的地址值,但是在java中比较地址值是没有意义的,所以一般"=="都是去比较基本数据类型
equals()方法只能比较引用数据类型,equals()方法在没重写之前,比较的也是地址值,底层依赖"==",但是重写之后,比较的就不是地址值了,而是属性
所以一般的引用数据类型都会重写equals()方法,就算没重写,也继承了Object中的equals()方法
|