【学习心得】java中“==”和默认“equals()”的区别

---------------------- android培训java培训、期待与您交流! ----------------------

           java语言中用来进行等价判断的是“==”和默认(没有被重写)的“equals()”方法,在平时的使用中的我们有时会模糊他们之间的差别, 

其实呢,我们只需要记住两点就可以判别它们之间的区别——①对于基本数据类型,两者进行等价判断时判断的是基本类型的值,只要值相等,那么判断

结果就为真;②对于引用型数据,“==”比较的是对象的hashcode编码,也就是在内存中的位置,即是否为同一个对象,如果是同一个则为真;而默认的

“equals()”则在比较一些特定的引用类型上(如String,File,Date以及封装类型)数据时,只要两个对象的类型相同且内容相等(对象各自封转的属性值对应相等),

那么该方法就判断为真。所以,我们在使用的时候就要考虑我们要比较的是内容相同还是对象相同。正如张孝祥老师讲解反射时比较String字节码对象时,判断是否为同一个字节码用“==”,而不用“equals()”。但是我们一但重写了“equals()”,改变了它的判断标准,那么我们就要根据具体情况来看了。

---------------------- android培训java培训、期待与您交流! ---------------------- 详细请查看: http://edu.csdn.net/heima
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值