- == 和 equals 都是比较是否相等,请问它们到底有什么区别呢?
相等 : a 传统的理解一般都是数字值是否相等;
b 在程序中任何东西都是数据,都会比较是否相等[ 对象 ] - == 比较运算符
1)基本数据类型变量: 比较的就是值是否相等;
2)引用数据类型变量: 比较的是对象的地址是否一样;(排除特殊 String) - equals 方法[最初定义在根类Object中的,比较对象是否相等]方法里面 ==
- 基本数据类型 : 不能够使用! 基本数据类型不是对象,不能够调用Object中的方法
- 引用数据类型 : 但是在Object的源码中定义的就是 == 进行比较比较
4.定义好的类没有覆写过equals方法,则会直接调用到了Object中的equals方法,那么本质还是在使用比较
5.在实际开发中,自定义类:一般比较对象,都是通过对象的属性值进行比较,所以自定义类,会经常覆在自定义的类中写Object中的此方法,把自己的比较规则写在方法里面;
6.覆写equals方法的意义:定义类,覆写equals方法,自己制定规则,比较自定义类对象的静态属性
小结 : 比较基本数据类型: 比较对象用 equals方法