Java中为什么判断引用数据类型是否为null不能使用equals
2018-11-19 22:06
260 查看
java中所有类的顶层父类是Object,而Object中的equals是比较的两个引用类型的地址,并不是比较的两个引用类型的值,一般情况下我们并不需要比较地址值是否相等,所以需要覆写equals取比较值,覆写的equals方法如下。
通过代码第三行我们可以看到,如果方法中传入的参数是null那么会直接返回false,这就是为什么在判断是否为null的时候只能用双等于,而不能使用equals的原因。equals也不能比较两个不同类型的值,如果不同类型的值比较那么也会返回false,例如String类型5和Integer类型的5。
相关文章推荐
- JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。
- 为什么C++类定义中,数据成员不能被指定为自身类型,但可以是指向自身类型的指针或引用?
- JAVA判断各种类型数据是否为空
- Java判断对象或者原始数据类型是否是数组
- Java第五课 Java的常用包,"=="和"equals"的用法,基本数据类型与引用类型,对象的克隆。
- EffectiveJava(23)为什么不能在新生代码中使用原生态类型
- 用类名做方法的返回值类型 在学习Java的初始阶段,很多同学使用基本数据类型定义变量和引用类型定义变量以及使用类名做方法的返回值类型常常不知所以。今天我以自己的解读方式和个人的理解作一个简单的解释,和
- Java判断对象或者原始数据类型是否是数组
- Java判断对象或者原始数据类型是否是数组
- JAVA判断各种类型数据是否为空
- Java集合不能存放基本数据类型,只存放对象的引用
- Java判断对象或者原始数据类型是否是数组
- Java判断对象或者原始数据类型是否是数组
- java基本数据类型和引用类型的判断
- Java判断对象或者原始数据类型是否是数组
- Java判断对象或者原始数据类型是否是数组
- 2006-07-28 Java的常用包,"=="和"equals"的用法,基本数据类型与引用类型,对象的克隆
- Java中判断对象是否相等的equals()方法使用教程
- 为什么C++类定义中,数据成员不能被指定为自身类型,但可以是指向自身类型的指针或引用?
- java中对象的引用类型及判断对象是否存活的算法