我们知道== 和 equals 都是比较是否相等,比如在程序中任何东西都是数据,都会比较是否相等[对象 ]
下面介绍一下我们在比较的时候到底是在比较什么:
1.== 比较运算符:
① 基本数据类型变量: 比较的就是值是否相等;
② 引用数据类型变量: 比较的是对象的地址是否一样;(排除特殊 String)
2. equals 方法[最初定义在根类Object中的,比较对象是否相等]方法里面 ==
① 基本数据类型: 不能够使用! 基本数据类型不是对象,不能够调用Object中的方法
② 引用数据类型 : 但是在Object的源码中定义的就是 == 进行比较
③ 定义好的类没有覆写过equals方法,则会直接调用到了Object中的equals方法,那么本质还是在使用==比较
而我们在实际开发中,自定义类:一般比较对象,都是通过对象的属性值进行比较,所以自定义类,会经常覆在自定义的类中写Object中的此方法,把自己的比较规则写在方法里面;
覆写equals方法的意义:定义类,覆写equals方法,自己制定规则,比较自定义类对象的静态属性
小结:比较基本数据类型:== 比较对象用 equals方法