[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]
如果你不信,随便生成一个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]