中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

政府網(wǎng)站用什么cmsseo新人怎么發(fā)外鏈

政府網(wǎng)站用什么cms,seo新人怎么發(fā)外鏈,廈門市集美區(qū)建設(shè)局網(wǎng)站,旅游網(wǎng)站首頁Object 概述 Object類是所有類的基類——java.lang.Object。 Object類是所有類的基類,當一個類沒有直接繼承某個類時,默認繼承Object類Object類屬于java.lang包下,此包下的所有類在使用時無需手動導(dǎo)入,系統(tǒng)會在程序編譯期間自動…

Object

概述

Object類是所有類的基類——java.lang.Object。

  • Object類是所有類的基類,當一個類沒有直接繼承某個類時,默認繼承Object類
  • Object類屬于java.lang包下,此包下的所有類在使用時無需手動導(dǎo)入,系統(tǒng)會在程序編譯期間自動導(dǎo)入。

Object類有七個native方法:registerNatives()、getClass()、hashCode()、clone()、notify()、notifyAll()。

源碼解析

/*** native 方法,用于返回當前運行時對象的Class對象,使用了final關(guān)鍵字修飾,故不允許子類重寫。*/
public final native Class<?> getClass()
/*** native 方法,用于返回對象的哈希碼,主要使用在哈希表中,比如JDK中的HashMap.
*/
public native int hashCode()
/**
* 用于比較兩個對象的內(nèi)存地址是否相等。
*/
public boolean equals(Object obj)
/**
* naitive 方法,用于創(chuàng)建并返回當前對象的一份拷貝。
*/
protected native Object clone() throws CloneNotSupportedException
/**
* 返回類的名字實例的哈希碼的16進制的字符串。
*/
public String toString()
/**
* native方法,并且不能重寫。喚醒一個在此對象監(jiān)視器上等待的線程(監(jiān)視器相當于就是鎖的概念)。如果有多個線程在等待只會任意喚醒一個。
*/
public final native void notify()
/*** native 方法,并且不能重寫。跟 notify 一樣,唯一的區(qū)別就是會喚醒在此對象監(jiān)視器上等待的所有線程,而不是一個線程。*/
public final native void notifyAll()
/**
* native方法,并且不能重寫。暫停線程的執(zhí)行。注意:sleep方法沒有釋放鎖,而wait方法釋放了鎖,timeout是等待時間。
*/
public final native void wait(long timeout) throws InterruptedException
/*** 多了 nanos 參數(shù),這個參數(shù)表示額外時間(以毫微秒為單位,范圍是 0-999999)。 所以超時的時間還需要加上 nanos 毫秒。*/
public final void wait(long timeout, int nanos) throws InterruptedException
/*** 跟之前的2個wait方法一樣,只不過該方法一直等待,沒有超時時間這個概念*/
public final void wait() throws InterruptedException
/*** 實例被垃圾回收器回收的時候觸發(fā)的操作*/
protected void finalize() throws Throwable

類構(gòu)造器?

?一個類必須要有一個構(gòu)造器的存在,如果沒有顯示聲明,那么系統(tǒng)會默認創(chuàng)建一個無參構(gòu)造器,在JDK的Object類源碼中,是看不到構(gòu)造器的,系統(tǒng)會自動添加一個無參構(gòu)造器。

// 構(gòu)造一個Object類的對象。
Object obj = new Object();

equals方法

?源碼

 public boolean equals(Object obj) {return (this == obj);}

結(jié)論:

  • 在 Object 類中,== 運算符和 equals 方法是等價的,都是比較兩個對象的引用是否相等,從另一方面來講,如果兩個對象的引用相等,那么這兩個對象一定是相等的
  • 對于我們自定義的一個對象,如果不重寫 equals 方法,那么在比較對象的時候就是調(diào)用 Object 類的 equals 方法,也就是用 == 運算符比較兩個對象

?重寫equals原則

   @Overridepublic boolean equals(Object otherObject) {//1、判斷比較的兩個對象引用是否相等,如果引用相等那么表示是同一個對象,那么當然相等if(this == otherObject){return true;}//2、如果 otherObject 為 null,直接返回false,表示不相等if(otherObject == null ){//對象為空或者不是Person類的實例return false;}//3、比較 this 和 otherObject 是否是同一個類(注意下面兩個只能使用一種)//3.1:如果 equals 的語義在每個子類中所有改變,就使用 getClass 檢測if(this.getClass() != otherObject.getClass()){return false;}//3.2:如果所有的子類都有統(tǒng)一的定義,那么使用 instanceof 檢測if(!(otherObject instanceof Person)){return false;}//4、將 otherObject 轉(zhuǎn)換成對應(yīng)的類類型變量Person other = (Person) otherObject;//5、最后對對象的屬性進行比較。使用 == 比較基本類型,使用 equals 比較對象。如果都相等則返回true,否則返回false//   使用 Objects 工具類的 equals 方法防止比較的兩個對象有一個為 null而報錯,因為 null.equals() 是會拋異常的return Objects.equals(this.pname,other.pname) && this.page == other.page;//6、注意如果是在子類中定義equals,則要包含 super.equals(other)//return super.equals(other) && Objects.equals(this.pname,other.pname) && this.page == other.page;}

如果在重寫?equals()?方法時沒有重寫?hashCode()?方法,使用?HashMap?可能會出現(xiàn)以下問題:

  1. 違反?hashCode?契約

    Java 規(guī)定,如果兩個對象通過?equals()?方法比較相等,那么它們的?hashCode()?也必須相等。如果只重寫?equals()?而不重寫?hashCode(),可能會導(dǎo)致兩個相等的對象返回不同的哈希值,從而違反這一契約。
  2. HashMap 無法正確查找對象

    HashMap?依賴?hashCode()?來確定對象的存儲位置。如果兩個對象相等但?hashCode()?不同,HashMap?可能會將它們放在不同的桶中,導(dǎo)致無法通過?get()?方法正確找到對象。
  3. 數(shù)據(jù)丟失或重復(fù)

    由于?HashMap?使用?hashCode()?和?equals()?來管理鍵值對,如果?hashCode()?不一致,可能會導(dǎo)致數(shù)據(jù)被錯誤地存儲或覆蓋,進而引發(fā)數(shù)據(jù)丟失或重復(fù)。

getClass方法

public final native Class<?> getClass();

getClass()在 Object 類中如上,作用是返回對象的運行時類。

toString 方法

public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
  • getClass().getName()是返回對象的全類名(包含包名),Integer.toHexString(hashCode()) 是以16進制無符號整數(shù)形式返回此哈希碼的字符串表示形式。
  • 打印某個對象時,默認是調(diào)用 toString 方法,比如 System.out.println(person),等價于 System.out.println(person.toString())。

clone方法

/**
* 本地clone方法,用于對象的復(fù)制
*/
protected native Object clone() throws CloneNotSupportedException;

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

finalize 方法

protected void finalize() throws Throwable { }

當 GC 確定不再有對該對象的引用時,GC 會調(diào)用對象的?finalize()?方法來清除回收。

JVM 會確保一個對象的?finalize()?方法只被調(diào)用一次,而且程序中不能直接調(diào)用?finalize()?方法。

finalize()?方法通常也不可預(yù)測,而且很危險,一般情況下,不必要覆蓋?finalize()?方法。

?

?

?

?

http://www.risenshineclean.com/news/50088.html

相關(guān)文章:

  • 長沙外貿(mào)建站vue seo 優(yōu)化方案
  • 北京中高端網(wǎng)站建設(shè)友情鏈接買賣平臺
  • 網(wǎng)站免費正能量不用下載歐洲站fba
  • 公司網(wǎng)站建設(shè)費用賬務(wù)處理百度云群組
  • 深圳購物網(wǎng)站建網(wǎng)站怎么快速排名
  • 圖片制作在線制作免費seo外包公司費用
  • 網(wǎng)站支付頁面怎么做的123網(wǎng)址之家
  • 常用的網(wǎng)站建設(shè)技術(shù)有什么軟件一鏈一網(wǎng)一平臺
  • 怎樣建立平臺愛站網(wǎng)seo
  • 建設(shè)營銷網(wǎng)站要什么寧波技術(shù)好的企業(yè)網(wǎng)站制作
  • 中國歐洲陸運專線外包seo公司
  • html 手機網(wǎng)站開發(fā)吸引人的軟文標題例子
  • wordpress theme 免費北京搜索引擎優(yōu)化經(jīng)理
  • 可以做網(wǎng)站的編程有什么軟件成都網(wǎng)絡(luò)推廣優(yōu)化
  • PHP網(wǎng)站開發(fā)程序員招聘免費推廣產(chǎn)品的平臺
  • 網(wǎng)站產(chǎn)品頁面什么時候做怎么自己做網(wǎng)站
  • 網(wǎng)站被黑了怎么恢復(fù)重慶企業(yè)站seo
  • 大學(xué)二級學(xué)院網(wǎng)站建設(shè)必要性網(wǎng)站流量統(tǒng)計工具
  • 做php網(wǎng)站前端價格鄭州seo聯(lián)系搜點網(wǎng)絡(luò)效果好
  • 廣州哪里有學(xué)做網(wǎng)站的瀏覽器網(wǎng)站大全
  • 常寧市建設(shè)局網(wǎng)站seo培訓(xùn)
  • 北京建筑公司一覽表商品標題關(guān)鍵詞優(yōu)化
  • 購物 網(wǎng)站建設(shè)的市場分析電商廣告網(wǎng)絡(luò)推廣
  • 怎么看網(wǎng)站做沒做推廣手機軟文廣告300字
  • 婚慶公司網(wǎng)站模板seo公司排名教程
  • 天津武清網(wǎng)站建設(shè)廣州最新消息今天
  • 廣州文化網(wǎng)站模板百度手機助手下載安卓
  • 這幾年做哪些網(wǎng)站能致富站內(nèi)推廣的方法
  • h5微信網(wǎng)站建設(shè)百度app手機版
  • 怎么做網(wǎng)站彈幕效果網(wǎng)站制作模板