Java Object

来源:互联网 发布:egd网络黄金官网 编辑:程序博客网 时间:2024/05/18 13:25

Java doc中这样描述 Object:

"The root class of Java class hierarchy. All non-primitive types (including arrays) inherit either directly or indirectly from this class".

即,Java中除基础类型之外的类型(包括Enum),都是直接或间接地继承自Object类。


Object类中的方法有:

protected Object clone();

调用private native 方法 internalClone()进行浅拷贝。


public void equals(Object o);

equals()方法是比较两个对象。默认的实现是比较2个对象的引用在堆中的地址。


public int hashCode()

hashCode()返回对象的hash code。默认返回的是引用的地址。

equals()返回true的两个对象,hash code的值必须相同。所以,两个函数的重写必须保持同步。


protected void finalize();

当gc判断认定该对象不再被任何其他对象引用时,回收该对象前会掉用finalize()方法来进行一些操作,比如回收一些资源。


public Class<?> getClass();

返回该对象的Class类型。


notify和wait

public final native void notify();

public final native void notifyAll();

public final native void wait();

public final void wait(long millis);

以上4个final方法主要用来实现线程间的同步机制。

可以简单理解为,调用object的wait来释放锁,线程进入等待。当object调用notify后,唤醒之前调用该object的wait方法的线程。notify唤醒1个wait线程,notifyAll唤醒所有对应的wait线程。


public String toString();

默认实现为:

    public String toString() {        return getClass().getName() + '@' + Integer.toHexString(hashCode());    }



0 0
原创粉丝点击