《Effective Java》 第二講:對于所有對象都通用的方法

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

上接《Effective Java》 第一講:創建和銷毀對象

?

八、覆蓋 equals 時請遵守通用約定

1. 自反性:對于任何非空的引用 x 都有 x.equals( x ) 都必須返回 true 。 ?( 參見:什么是自反、反自反? )

2. 對稱性:對于任何非 null 的引用值 x 和 y ,當且僅當y.equals(x)返回true時,x.equals(y)必須返回 true。

3. 傳遞性:x,y,z, 如果 x.equals(y) 為 true , y.equals(z) 為 true,那么 x.equals(z) 必須為 true。

4. 一致性:引用值 x 和y,未修改值 ,則多次調用 x.equals(y),結果必須一致。

5. 對于任何非 null 的引用值x,x.equals(null) 必須返回 false。

?

實現高質量equals方法的訣竅:


1. 使用==操作符檢查“參數是否為這個對象的引用”


2. 使用instanceof操作符檢查“參數是否為正確的類型”


3. 把參數轉換成正確的類型


4. 對于該類中的每個”關鍵”域,檢查參數中的域是否與該對象中對應的域相匹配


5. 當你編寫完成了equals方法之后,應該問自己三個問題:它是否是對稱的、傳遞的、一致的。

?

?

九、覆蓋 equals( ) ?時總要 覆蓋 hashCode( )?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451265.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451265.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451265.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux刪除文件操作

linux刪除文件夾命令 在用Linux的時候,有時候要刪除一個文件夾,往往會提示次此文件非空,沒法刪除,這個時候,必須使用rm -rf命令。 實例一: rm -rf /var/log/httpd/access 將會刪除/var/log/httpd/access目錄…

Python 運算符重載

https://www.cnblogs.com/hotbaby/p/4913363.html轉載于:https://www.cnblogs.com/changbaishan/p/9668720.html

python爬取elasticsearch內容

我們以上篇的elasticsearch添加的內容為例,對其內容進行爬取,并獲得有用信息個過程。 先來看一下elasticsearch中的內容: {"took": 88,"timed_out": false,"_shards": {"total": 5,"successful…

創業必經之路——Paul Graham創業曲線

導讀:國外媒體avc.com近日發表一篇文章《The Startup Curve》,文中談到創業者都處于Paul Graham創業曲線中各個階段,不要一味的畏懼失敗,要多傾聽客戶反饋并從中尋找制勝的信息。總而言之,不畏艱難即可成功。以下為文章…

Java:對象的強、軟、弱和虛引用

見:http://zhangjunhd.blog.51cto.com/113473/53092 maven/Java/web/bootstrap/dataTable/app開發QQ群:566862629。希望更多人一起幫助我學習。 1.對象的強、軟、弱和虛引用在JDK 1.2以前的版本中,若一個對象不被任何變量引用&am…

java注解:@Deprecated(不建議使用的,廢棄的);@SuppressWarnings(忽略警告,達到抑制編譯器產生警告的目的)

java注解:Deprecated(不建議使用的,廢棄的), SuppressWarnings(忽略警告,達到抑制編譯器產生警告的目的)Deprecated可以修飾類、方法、變量,在java源碼中被Deprecated修飾的類、方法、變量等表示不建議使用的,可能會出…

Mysql 替換字段的一部分內容

UPDATE 表名 SET 字段名 REPLACE( 替換前的字段值, 替換前關鍵字, 替換后關鍵字 ) WHERE 字段名 REGEXP "替換前的字段值"; 例子: UPDATE user SET mobile REPLACE( head_img, "http://7xswdm.com1.z0.glb.clouddn.com", "http://qiniu-i…

聊聊3種最常見的響應式設計問題

響應式設計方法對開發者非常有用,因為它使我們的內容在各種設備上廣為傳播。不用保留幾個獨立版本的網站,也可以摒除諸如縮放和流式布局這些方法的弊端。 縮放、流式布局與響應式 這些術語容易造成混淆,設計師常常錯誤地交替互用。實際上&…

PV、TPS、QPS是什么

pv 是指頁面被瀏覽的次數,比如你打開一網頁,那么這個網站的pv就算加了一次;tps是每秒內的事務數,比如執行了dml操作,那么相應的tps會增加;qps是指每秒內查詢次數,比如執行了select操作&#xff…

AOP原理解析及Castle、Autofac、Unity框架使用

轉自:https://www.cnblogs.com/neverc/p/5241466.html AOP介紹 面向切面編程(Aspect Oriented Programming,英文縮寫為AOP),通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。 AOP是OOP的延續,是軟件…

bootstrap validator 提供了哪些驗證函數

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 目前提供的校驗方法有: "notEmpty" : "不能為空", "password" : "請輸入正確的密碼&q…

帕累托分布(Pareto distributions)、馬太效應

什么是帕累托分布 帕累托分布是以意大利經濟學家維弗雷多帕雷托命名的。 是從大量真實世界的現象中發現的冪次定律分布。這個分布在經濟學以外,也被稱為布拉德福分布。 帕累托因對意大利20%的人口擁有80%的財產的觀察而著名,后來被約瑟夫朱蘭和其他人概括…

兩個class寫在同一個java文件中

第一種: 一個public類,多個非public類,例如:public class A{}class B{}第二個class前面不能加public。 第二種: 第二種是內部類,寫在公共類體里面的&#xff…

微信小程序的一些數據調用方式

1.模板數據的調用 一張圖了解一下在wxml頁調用預先定義好的模板: 可以看到上面調用了兩個模板,數據調用卻是不同的,obj是一個對象,對象內包含多個鍵值對形式的數據; tabbar是一個一維數組,每個數組項又都是…

手機廠商探路互聯網:硬件高利潤時代已成歷史

華為消費者業務集團CEO兼終端公司董事長余承東近日出席“2012年全球移動互聯網大會”期間證實,華為計劃與奇虎360合作推出一款智能手機。 余承東表示,華為終端將嘗試與多家互聯網公司就智能手機業務展開合作,但他未透露與奇虎360合作的更多細…

解決:按截圖 ctrl+alt+a QQ聊天窗口就自動最小化(QQ以外的可以截圖)

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 一、問題如題 ,想截圖QQ聊天記錄都不行 二、 解決方法: 如圖找到QQ截圖按鈕,點擊下拉倒三角&…

數據庫備份DBS商業化發布

數據庫備份DBS商業化發布將在2018年7月11日 15:00-16:00直播,敬請關注! 數據庫備份DBS為數據庫提供連續數據保護、低成本的備份服務。 它可以為多種環境的數據提供強有力的保護,包括企業數據中心、其他云廠商及公共云。數據庫備份提供數據備份…

堡壘機(跳板機)

堡壘機(跳板機)?現在一定規模互聯網企業,往往都擁有大量服務器,如何安全并高效的管理這些服務器是每個系統運維或安全運維人員必要工作。現在比較常見的方案是搭建堡壘機環境作為線上服務器的入口,所有服務…

2018-09-18

12.1 LNMP架構介紹 和LAMP不同的是,提供web服務的是Nginx并且php是作為一個獨立服務存在的,這個服務叫做php-fpmNginx直接處理靜態請求,動態請求會轉發給php-fpm12.2 MySQL安裝 二進制免編譯包安裝 [rootlocalhost ~]# cd /usr/local/src/ [r…

舉例說明Java中代碼塊的執行順序

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 結論 這里先把整理好的結論拋給大家,然后我在寫個程序來驗證我們的結論。在Java類被new的過程中,執行順序如…