`
liuyf8688
  • 浏览: 96757 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java---Object

阅读更多

1.Objectequals方法?

equals在非空对象的引用上实现了等值关系:

(1)自反性:x.equals(x),值为true

(2)相称性:x.equals(y),值为truey.equals(x),值为true

(3)传递性:x.equals(y),值为truey.equals(z),值为truex.equals(z),值为true

(4)一致性:x.equals(y),值为true;多次调用后,值还是true

(5)x.equals(null),值为false

注:重载此方法,一般应同时重载hashCode方法。这样做的目的是维护hashCode方法的公共约定;值相等的对象,hashCode也相同。

2.ObjecthashCode方法?

返回对象的hash值。这个方法为Hashtable提供支持。

hashCode的公共约定:

(1)Java应用程序的执行过程中,多次调用同一对象的hashCode方法,返回的值应该相同。该对象的equals方法被修改后,此值不受影响。应用程序的两次执行过程中,不需要维护这个值的一致性。

(2)如果两个对象通过equals方法比较,为true。则分别调用两个对象的hashCode方法,应该返回相同的整数值。

(3)对下列情况不做要求。如果两个对象通过equals方法比较不相等,分别调用两个对象的hashCode方法,必须制造出不同的整数值。无论如何,程序员应该注意到,两个不同的对象拥有不同的hashCode值,可以改善Hashtable的性能。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics