Object是所有類芜赌、數(shù)組其爵、枚舉類(特殊的Java類)的父類
目錄導(dǎo)讀
equals()
finalize()
hashCode()
toString()
getClass()
clone()
notify()冒冬、notifyAll()、wait()
常用的方法:
(1)equals(Object obj)
判斷兩個對象是否相等
public boolean equals(Object obj) {
return (this == obj);
}
(2)finalize()
垃圾回收器調(diào)用回收垃圾
protected void finalize() throws Throwable { }
(3)hashCode()
返回對象的hashCode值
public native int hashCode(); //默認情況下是根據(jù)對象的地址來計算摩渺,結(jié)果與System.identityHashCode(Object x)結(jié)果相同
(4)toString()
返回對象的字符串表示
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
(5)getClass()
返回該對象運行時類
public final native Class<?> getClass();
(6)clone()简烤,這是一種淺克隆
獲得的該對象的副本,與原對象之間完全隔離(地址不一樣,但是里面的變量所指的地方可能是一樣的)
protected native Object clone() throws CloneNotSupportedException;
如何實現(xiàn)自我克隆:
自定義類實現(xiàn)Cloneable接口摇幻,該接口是個標記性接口(里面沒有任何方法横侦,與此類似的接口
還有Serializable挥萌,實現(xiàn)對象序列化),表明實現(xiàn)該接口的對象可以實現(xiàn)自我克隆
注意:
該克隆只是一種淺克隆枉侧,即它只克隆該對象的所有成員變量值引瀑,不會對引用類型的成員變量值所引用的對象進行克隆。
(7)notify()榨馁、notifyAll()憨栽、wait()等
用于控制線程暫停與運行,可以用來實現(xiàn)線程間的通信
public final native void notify();
public final native void notifyAll();
public final native void wait(long timeout) throws InterruptedException;
public final void wait(long timeout, int nanos)throws InterruptedException {...}
public final void wait() throws InterruptedException {}