object是java中所有類的默認(rèn)父類践叠,里面有11個(gè)默認(rèn)方法嚼蚀。意即所有的類都會(huì)默認(rèn)繼承11個(gè)方法。
1.public final Class<?ectends Object> getClass()返回一個(gè)運(yùn)行時(shí)的類
2.public int hashCode()返回對(duì)象的哈希碼轿曙;
3.public Boolean equals(Object o)比較對(duì)象是否相等弄捕;
4.protect Object clone()返回對(duì)象的副本导帝;要聲明實(shí)現(xiàn)Clonable,要有異常處理,只能在其子類或類內(nèi)用您单;當(dāng)克隆一份對(duì)象時(shí),其對(duì)象屬性只是克隆了一份指向另一個(gè)對(duì)象的地址值虐秦;
5.public String toString()返回對(duì)象的字符串表示平酿;打印一個(gè)對(duì)象默認(rèn)調(diào)用其默認(rèn)toString()方法;
6.public final void notify()喚醒在此對(duì)象監(jiān)視器上等待的單個(gè)線程悦陋;
7.public final void notifyAll()喚醒在此對(duì)象監(jiān)視器上的所有線程蜈彼;
8.protected void finalize()當(dāng)垃圾回收器確定不存在對(duì)該對(duì)象的更多引用時(shí),調(diào)用此方法回收對(duì)象俺驶;
9.public final void wait(long timeout)導(dǎo)致當(dāng)前線程等待幸逆,直到其他線程調(diào)用此對(duì)象的notify()或notifyAll()方法或時(shí)間超時(shí);
10.public final void wait(long timeout, int nanos)或其他線程中斷當(dāng)前線程痒钝,或超過實(shí)際時(shí)間:1000000*timeout+nanos秉颗;
11.public final void wait()導(dǎo)致當(dāng)前線程等待,直到其他線程調(diào)用此對(duì)象的notify()或notifyAll()方法送矩;
在這里11個(gè)方法中最常用的方法是hashCode()和
equals()方法蚕甥。hashCode()方法就像是給一堆人不同的房間編碼,然后equals()方法就是給每個(gè)人唯一的一個(gè)身份
標(biāo)識(shí)栋荸。這兩個(gè)方法是用來方便給對(duì)象分配內(nèi)存進(jìn)行管理的菇怀,就像是管理一批貨品凭舶,先給他們分配一些不同的倉(cāng)庫(kù)進(jìn)行分別的存儲(chǔ),然后找到他們時(shí)就可以先按他們的倉(cāng)庫(kù)編號(hào)找到存儲(chǔ)他們的倉(cāng)庫(kù)爱沟,尋找效率便能大大提高帅霜。由于倉(cāng)庫(kù)號(hào)可以相同,而身份標(biāo)識(shí)唯一呼伸,所以當(dāng)equals()相同身冀,hashCode()
必然相同。
這里還要注意一下clone()只是淺復(fù)制括享,即若屬性是個(gè)對(duì)象類型則只得到一個(gè)地址值搂根,若要深度復(fù)制則只能自己另行復(fù)制。
要問我代碼為什么寫得這么屌铃辖?戳下面的鏈接你就知道剩愧,想成為碼王一樣的男人嗎?我的代碼都放在那了娇斩,想要嗎仁卷?還等什么?趕快去拿吧H凇锦积!