Object类详解

包:java.lang.Object

Object 是java中的root类,所有类都继承它,也就实现了 object的所有方法。

-----------------常用方法---------------------

构造方法:

1 public class Object {
2 
3     private static native void registerNatives();
4     static {
5         registerNatives();
6     }

equals:

1     public boolean equals(Object obj) {
2     return (this == obj);
3     }

toString():

1   public String toString() {
2     return getClass().getName() + "@" + Integer.toHexString(hashCode());
3     }

我暂时就知道这两个会被子类复写。也尽量去复写吧。

--------------------equals() 方法的特点-------------------------------

自反性: x.equals(x) -> true

对称性: x.equals(y) -> true , y.equals(x) -> true

传递性: x.equals(y) -> true , y.equals(z) -> true , x.equals(z) -> true

一致性: x.equals(y) 多次调用返回值不变.

对于和非空引用x , x.equals(null) ->false

true表明两个引用指向同一个object.

当Override equals()方法时候,必须也要override hashCode()方法。因为相等的对象也有相同的hashcode值。

--------------------hashCode()-----------------------------------

为了更好的使用java.util.HashTable.

特点:

在Java的一次执行过程中,对于同一个对象的hashCode调用,返回相同的值。不同的执行过程中,hashcode值可以不一致。

如果两个对象equals->true,那么他们的hashCode值必须相同

对于两个对象equals->false, 那么这两个对象的hashcode 值不一定要求不同,但是不同可以提高应用的性能。

Object对象的hashCode()不同,因为它表示的是对象的地址。

 

posted on 2012-05-24 11:37  leohxj  阅读(331)  评论(0编辑  收藏  举报

导航