這篇文章主要介紹“Java中Object類常用方法介紹”,在日常操作中,相信很多人在Java中Object類常用方法介紹問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Java中Object類常用方法介紹”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,先為雨山等服務(wù)建站,雨山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為雨山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。前言
Java 中的 Object 方法在面試中是一個(gè)非常高頻的點(diǎn),畢竟 Object 是所有類的“老祖宗”。Java 中所有的類都有一個(gè)共同的祖先 Object 類,子類都會(huì)繼承所有 Object 類中的 public 方法。
先看下 Object 的類結(jié)構(gòu)(快捷鍵:alt+7):
1. getClass 方法
public final native Class<?> getClass();
final 方法、獲取對(duì)象的運(yùn)行時(shí) class 對(duì)象,class 對(duì)象就是描述對(duì)象所屬類的對(duì)象。這個(gè)方法通常是和 Java 反射機(jī)制搭配使用的。
2. hashCode 方法
public native int hashCode();
該方法主要用于獲取對(duì)象的散列值。Object 中該方法默認(rèn)返回的是對(duì)象的堆內(nèi)存地址。
3. equals 方法
public boolean equals(Object obj) { return (this == obj);}
該方法用于比較兩個(gè)對(duì)象,如果這兩個(gè)對(duì)象引用指向的是同一個(gè)對(duì)象,那么返回 true,否則返回 false。一般 equals 和 == 是不一樣的,但是在 Object 中兩者是一樣的。子類一般都要重寫這個(gè)方法。
4. clone 方法
protected native Object clone() throws CloneNotSupportedException;
該方法是保護(hù)方法,實(shí)現(xiàn)對(duì)象的淺復(fù)制,只有實(shí)現(xiàn)了 Cloneable 接口才可以調(diào)用該方法,否則拋出 CloneNotSupportedException 異常。
默認(rèn)的 clone 方法是淺拷貝。所謂淺拷貝,指的是對(duì)象內(nèi)屬性引用的對(duì)象只會(huì)拷貝引用地址,而不會(huì)將引用的對(duì)象重新分配內(nèi)存。深拷貝則是會(huì)連引用的對(duì)象也重新創(chuàng)建。
5. toString 方法
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
返回一個(gè) String 對(duì)象,一般子類都有覆蓋。默認(rèn)返回格式如下:對(duì)象的 class 名稱 + @ + hashCode 的十六進(jìn)制字符串。
6. notify 方法
public final native void notify();
final 方法,主要用于喚醒在該對(duì)象上等待的某個(gè)線程。
7. notifyAll 方法
public final native void notifyAll();
final 方法,主要用于喚醒在該對(duì)象上等待的所有線程。
8. wait(long timeout) 方法
public final native void wait(long timeout) throws InterruptedException;
wait 方法就是使當(dāng)前線程等待該對(duì)象的鎖,當(dāng)前線程必須是該對(duì)象的擁有者,也就是具有該對(duì)象的鎖。wait() 方法一直等待,直到獲得鎖或者被中斷。wait(long timeout) 設(shè)定一個(gè)超時(shí)間隔,如果在規(guī)定時(shí)間內(nèi)沒(méi)有獲得鎖就返回。歡迎大家關(guān)注我的公種浩【程序員追風(fēng)】,文章都會(huì)在里面更新,整理的資料也會(huì)放在里面。
9. wait(long timeout, int nanos) 方法
public final void wait(long timeout, int nanos) throws InterruptedException { if (timeout < 0) { throw new IllegalArgumentException("timeout value is negative"); } if (nanos < 0 || nanos > 999999) { throw new IllegalArgumentException( "nanosecond timeout value out of range"); } if (nanos >= 500000 || (nanos != 0 && timeout == 0)) { timeout++; } wait(timeout); }
參數(shù)說(shuō)明
timeout:大等待時(shí)間(毫秒)
nanos:附加時(shí)間在毫秒范圍(0-999999)
該方法導(dǎo)致當(dāng)前線程等待,直到其他線程調(diào)用此對(duì)象的 notify() 方法或notifyAll()方法,或在指定已經(jīng)過(guò)去的時(shí)間。此方法類似于 wait 方法的一個(gè)參數(shù),但它允許更好地控制的時(shí)間等待一個(gè)通知放棄之前的量。實(shí)時(shí)量,以毫微秒計(jì)算,計(jì)算公式如下:
1000000 * timeout + nanos
在所有其他方面,這種方法與 wait(long timeout) 做同樣的事情。特別是 wait(0, 0) 表示和 wait(0) 相同。
10. wait 方法
public final void wait() throws InterruptedException { wait(0);}
可以看到 wait() 方法實(shí)際上調(diào)用的是 wait(long timeout) 方法,只不過(guò) timeout 為 0,即不等待。
11. finalize 方法
protected void finalize() throws Throwable { }
該方法是保護(hù)方法,主要用于在 GC 的時(shí)候再次被調(diào)用,如果我們實(shí)現(xiàn)了這個(gè)方法,對(duì)象可能在這個(gè)方法中再次復(fù)活,從而避免被 GC 回收。
到此,關(guān)于“Java中Object類常用方法介紹”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前標(biāo)題:Java中Object類常用方法介紹-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)URL:http://jinyejixie.com/article14/hgige.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、App開(kāi)發(fā)、企業(yè)建站、響應(yīng)式網(wǎng)站、自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容