Object類如何在Java項目中使用

這篇文章將為大家詳細講解有關Object類如何在Java項目中使用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

為常山等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及常山網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為做網(wǎng)站、成都網(wǎng)站建設、常山網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

Object是所有類的父類,任何類都默認繼承Object。

一、Object類中的方法

1.clone方法

保護方法,實現(xiàn)對象的淺復制,只有實現(xiàn)了Cloneable接口才可以調(diào)用該方法,否則拋出CloneNotSupportedException異常。

主要是JAVA里除了8種基本類型傳參數(shù)是值傳遞,其他的類對象傳參數(shù)都是引用傳遞,我們有時候不希望在方法里講參數(shù)改變,這是就需要在類中復寫clone方法。

2.getClass方法

final方法,獲得運行時類型。

3.toString方法

該方法用得比較多,一般子類都有覆蓋。

4.finalize方法

該方法用于釋放資源。因為無法確定該方法什么時候被調(diào)用,很少使用。

5.equals方法

該方法是非常重要的一個方法。一般equals和==是不一樣的,但是在Object中兩者是一樣的。子類一般都要重寫這個方法。

6.hashCode方法

該方法用于哈希查找,可以減少在查找中使用equals的次數(shù),重寫了equals方法一般都要重寫hashCode方法。這個方法在一些具有哈希功能的Collection中用到。

一般必須滿足obj1.equals(obj2)==true??梢酝瞥鰋bj1.hash- Code()==obj2.hashCode(),但是hashCode相等不一定就滿足equals。不過為了提高效率,應該盡量使上面兩個條件接近等價。

如果不重寫hashcode(),在HashSet中添加兩個equals的對象,會將兩個對象都加入進去。

7.wait方法

wait方法就是使當前線程等待該對象的鎖,當前線程必須是該對象的擁有者,也就是具有該對象的鎖。wait()方法一直等待,直到獲得鎖或者被中斷。wait(long timeout)設定一個超時間隔,如果在規(guī)定時間內(nèi)沒有獲得鎖就返回。

調(diào)用該方法后當前線程進入睡眠狀態(tài),直到以下事件發(fā)生。

(1)其他線程調(diào)用了該對象的notify方法。

(2)其他線程調(diào)用了該對象的notifyAll方法。

(3)其他線程調(diào)用了interrupt中斷該線程。

(4)時間間隔到了。

此時該線程就可以被調(diào)度了,如果是被中斷的話就拋出一個InterruptedException異常。

8.notify方法

該方法喚醒在該對象上等待的某個線程。

9.notifyAll方法

該方法喚醒在該對象上等待的所有線程。

二、finalize()的作用

Java允許在類中定義一個名為finalize()的方法。它的工作原理是:一旦垃圾回收器準備好釋放對象占用的存儲空間,將首先調(diào)用其finalize()方法。并且在下一次垃圾回收動作發(fā)生時,才會真正回收對象占用的內(nèi)存。

關于垃圾回收,有三點需要記?。?/p>

1、對象可能不被垃圾回收。只要程序沒有瀕臨存儲空間用完的那一刻,對象占用的空間就總也得不到釋放。

2、垃圾回收并不等于“析構”。

3、垃圾回收只與內(nèi)存有關。使用垃圾回收的唯一原因是為了回收程序不再使用的內(nèi)存。

finalize()的用途:

無論對象是如何創(chuàng)建的,垃圾回收器都會負責釋放對象占據(jù)的所有內(nèi)存。這就將對finalize()的需求限制到一種特殊情況,即通過某種創(chuàng)建對象方式以外的方式為對象分配了存儲空間。不過這種情況一般發(fā)生在使用“本地方法”的情況下,本地方法是一種在Java中調(diào)用非Java代碼的方式。

為什么不能顯示直接調(diào)用finalize方法?

如前文所述,finalize方法在垃圾回收時一定會被執(zhí)行,而如果在此之前顯示執(zhí)行的話,也就是說finalize會被執(zhí)行兩次以上,而在第一次資源已經(jīng)被釋放,那么在第二次釋放資源時系統(tǒng)一定會報錯,因此一般finalize方法的訪問權限和父類保持一致,為protected。

關于Object類如何在Java項目中使用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

名稱欄目:Object類如何在Java項目中使用
標題來源:http://muchs.cn/article6/pphpig.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序、關鍵詞優(yōu)化、用戶體驗網(wǎng)站收錄、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司