equals与==

[size=xx-large][/size]1楼: equals()比较的是对象的值,==比较的是对象的地址。 这句话答得没错! 但 这不是String的区别,所有对象都有这区别
如果你不信,随便生成一个Object obj 它就有方法可以obj.equals(...);
也就是说equals方法是从Object继承来的,Java中任何对象都自动有这个方法;

2楼: equals()方法是可以重写的,是正确的.very good

3楼: 这种说法不对。重写equals方法不一定要重写hashCode方法,重写hashCode()方法的目的是给每个对象提供一个不重复的hash码(类似于id),因为得到这个id值后而这个id值又不会和其它对象重复,所以就可以拿这个id来做比值从而返回equals的值
; 但是我们完全可以不用这个hash码来做比较而可以只凭我们的逻辑来判断。

4楼: 这种说法不对! == 和equals 没有谁比谁优先高级之说,他们是干不同活用的, 你想用谁就用谁,适合不同的情境和地方。

5楼: 这种说法不对!==不是判断对象是否相等,是判断两个对象所引用的内存地址是否是相同的。 另外 .equals()方法绝对不是判断字符串是否相等用的! 这是严重错误, 任何一个Object都有equals方法。不单单是字符串!
[size=x-large][/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值