亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

第二天和第三天(第8-10條)

系統 1924 0

到目前為止,還能保持每天抽出一小時來學習。不過由于時間緊,所以一直沒來得及進行學習記錄,趁著現在有點時間,趕緊補一補

第8條:在改寫equals的時候請遵守通用約定

改寫equals方法看似簡單,但是有許多的改寫方式會導致錯誤,避免問題最容易的方式就是不改寫。那么我們什么時候equals呢?當一個類有自己特有的“ 邏輯相等”概念(不同于對象身份的概念),而且超類也沒有改寫e q u a l s以實現期望的行為,這時我們需要改寫e q u a l s方法。這通常適合于“ 值類(value class )”的情形,比如I n t e g e r或者date。程序員在利用e q u a l s方法來比較兩個指向值對象的引用的時候,希望知道它們邏輯上是否相等,而不是它們是否指向同一個對象。為了滿足程序員的要求,改寫e q u a l s方法是必需的,而且這樣做也使得這個類的實例可以被用做映射表( m a p)的鍵( k e y),或者集合(s e t)的元素,并使映射表或者集合表現出預期的行為。

改寫equals的時候必須遵守它的通用約定:

e q u a l s方法實現了等價關系( equivalence re l a t i o n):

?

自反性 (reflexive)。對于任意的引用值x,x.equals(x)一定為true。

?

對稱性 (symmetric).對于任意的引用值x和y,當且僅當y.equals(x)返回true是,x.equals(y)也一定返回true。

?

傳遞性 (transitive)。對于任意的引用值x、y和z,如果x.equals(y)返回true,并且y.equals(z)也返回true,那么x.equals(z)也一定返回true。

?

一致性 (consistent)。對于任意的引用值x和y,如果用于equals比較的對象信息沒有被修改的話,那么,多次地哦啊用x.equals(y)要么一致的返回true,要么一致的返回false。

?

非空性 (nun-nullity)。對于任意的非空引用值x,x.equals(null)一定返回false。

?

第9條:改寫equals時總是要改寫hashCode

?

一個很常見的錯誤根源在于沒有改寫hashCode方法。在每個改寫了equals方法的類中,你必須也要改寫hashCode方法。如果不這樣做的話,就會違反Object.hashCode的通用約定,從而導致該類無法與所有基于散列值( hash)的集合類結合在一起正常運作,這樣的集合類包括HashMap、HashSet和Hashtable。

?

下面是hashCode約定的內容,來自java.lang.Object的規范:

?

? 在一個應用程序執行期間,如果一個對象的equals方法做比較所用到的信息沒有被修改的話,那么,對該對象調用hashCode方法多次,它必須始終如一地返回同一個整數。在同一個應用程序的多次執行過程中,這個整數可以不同,即這個應用程序這次執行返回的整數與下一次執行返回的整數可以不一致。

?

? 如果兩個對象根據equals (Object)方法是相等的,那么調用這兩個對象中任一個對象的hashCode方法必須產生同樣的整數結果。

?

? 如果兩個對象根據equals(Object)方法是不相等的,那么調用這兩個對象中任一個對象的hashCode方法,不要求必須產生不同的整數結果。然而,程序員應該意識到這樣的事實,對于不相等的對象產生截然不同的整數結果,有可能提高散列表(hash table)的性能。

?

第10條:始終要覆蓋toString

java.lang.Object提供了一個toString方法的實現。它包含類的名稱,以及一個“@”符號,接著是散列碼的無符號十六進制,如“PhoneNumber@163b91”。這個結果通常不是我們想要的,所以toString的通用約定指出“建議所有的子類都覆蓋這個方法”。

?

提供好的toString方法,不僅僅有利于這個類的實例,同樣也利于那些包含這些實例的引用的對象,特別是集合對象。

?

第二天和第三天(第8-10條)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 综合爱爱网 | 色综合久久久久久中文网 | 免费欧美黄色网址 | 国产国产成人精品久久 | 亚洲 欧美 视频 | 香港a毛片免费全部播放 | 日韩在线视频网站 | 91色综合综合热五月激情 | 岛国大片在线观看 | 国产日韩高清一区二区三区 | 久久这里只有精品99 | 99九九精品免费视频观看 | riav久久中文一区二区 | 91成人国产 | 色综合久久综精品 | 亚洲成在人线中文字幕 | 青草视频.com | 亚洲sss视频 | 色久天 | 欧美爱爱网| 9999人体做爰大胆 | 亚洲精品国产专区一区 | 久久在线播放 | 秒播影视 午夜福利毛片 | 国内精品久久久久久西瓜色吧 | 九天玄帝诀王凡小说免费阅读 | 亚洲欧洲免费视频 | 91麻豆精品国产91久久久久 | 中文字幕亚洲综合久久2 | 成人午夜精品久久久久久久小说 | 99精品国产自产在线观看 | dyav午夜片| 欧美亚洲图区 | 天天艹| 国产国拍亚洲精品福利 | 夜夜操天天射 | 热综合一本伊人久久精品 | 久久久免费观成人影院 | 亚洲日日做天天做日日谢 | 91中文在线| 欧美亚洲综合另类型色妞 |