A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 流浪的兔猫 中级黑马   /  2019-5-18 09:46  /  1334 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

※ ,== :比较
. 基本数据类型比较的是值;
. 引用类型比较的是地址值。
※ equals(Object o):
1)不能比较基本数据类型,基本数据类型不是类类型;
2)a.比较引用类型时(该方法继承自Object,在object中比较的是地址值)等同于”==”;
Object类中的方法,所以,在每一个java类中,都会有这个方法,因为每一个java类都是直接或者间接的Object类的子类,会继承到这个方法。
2)b.如果自己所写的类中已经重写了equals方法,那么就安装用户自定义的方式来比较俩个对象是否相等,如果没有重写过equal方法,那么会调用父类(Object)中的equals方法进行比较,也就是比较地址值。
注:有的实现类中(JDK中),重写了equals方法,这时候比较内容(java.lang.String)
在自定义类中,如果比较对象,自己可以重写equals方法定义比较规则。
注意:equals(Object o)方法只能是一个对象来调用,然后参数也是要传一个对象的。
所以下面是错误的写法:
int a = 1;
a.equals(1);
因为基本数据类型不是算是对象,不能调用方法。
1)如果是基本数据类型那么就用==比较
2)如果是引用类型的话,想按照自己的方式去比较,就要重写这个类中的equals方法,
如果没有重写,那么equals和==比较的效果是一样的,都是比较引用的地址值。
3)如果是比较字符串,那么直接用equals就可以了,因为String类里面已经重写了equals方法,

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马