Effective Java 讀書筆記 5

2021-08-31 22:17:15 字數 880 閱讀 8846

列舉和註解這一章看完了沒什麼想法,可能是平時用的不多吧。但是也不好直接跳過去,就稍微記一下吧,如果以後有用到的時候,再回來翻翻。

30,使用enum來取代int常量。以前沒有enum的時候好多人就這麼定義常量,現在也還有很多人這麼寫。這麼定義常量的一大壞處就是編譯之後,常量就變成數字了,出錯了找起來沒那麼方便,尤其是名字不同的常量還可以有同樣的值。

31,使用例項域而不是enum自己的序數。單是為了自己容易控制這麼乙個目的,也得這麼做啊,enum自己的序數只能乙個個遞增,想跳過去乙個都不行。

32,使用enumset來代替bit域。這個很好,依靠乙個int或者long的二進位制表示形式的某一位的值來確定某個操作,不是不行,就是除錯起來也太複雜了一些,給你乙個數字,就算是給了二進位制形式,想數一下第19位是不是1或者0也得數一下呢。enumset的底層表現形式其實也是個long,但是它封裝了細節,你只需要關心列舉常量就好了。

33,使用enummap來代替基於enum序數的索引。

34,用介面來模擬可擴充套件的enum。enum是不能擴充套件的,所以可以考慮設計乙個介面,讓你的多個enum都實現這個介面。

35,註解優先於命名模式。這個最常見的例子就是junit了,在4.0版之前,乙個類要擴充套件testcase,然後如果方法被命名為test***這樣的形式,junit才會執行這個測試,到了4.0版之後,類不需要擴充套件testcase了,方法名也可以隨便起了,只要在方法名前面加上@test的註解就可以被測試了。本書舉的例子也是講如何開發乙個測試框架的。

36,使用override註解,這可以防止你自以為覆蓋(override)了父類的某個方法,其實只是過載(overload)而已。

37,使用標記介面(marker inte***ce)。所謂標記介面,就是serializable,cloneable這樣,不定義任何方法的介面。

Effective Java 讀書筆記

第二章 建立與銷毀物件 1 考慮用靜態工廠方法代替構造器 優點 1 有名稱 2 不必在每次呼叫他們的時候都建立乙個新的物件 3 他們可以返回原返回型別的任何子型別物件 4 使 更簡潔 缺點 1 類如果不含公有的或者受保護的構造器,就不能被子類化 2 與其他的靜態方法實際上沒有任何區別,不能一眼就看出...

Effective java 讀書筆記

一本書看了不少時間,終於這兩天看完了,看的眼睛生疼,估計也就領略了全書1 5的精華。這本書確確實實是本好書,就像剛剛牙牙學語的孩子必須接受父母的教導,電源插頭不可以摸,熱水不可以直接喝等等,很多經驗之談,給人確確實實的思考和應用。盡量多的編碼。如同讀書一樣,沒有一定的 量的積累,很難成為乙個好的程式...

Effective Java讀書筆記二

我們在設計類的時候,有些類難免會有許多的字段 fields 而這些字段可能需要在建立物件的時候對它們進行賦值。一般我們會考慮兩種方式 使用建構函式或者使用setter方法。使用建構函式的缺點很明顯,如果我們的字段過多,那麼就會讓建構函式的引數過多,在這種情況下,不但不容易理解和閱讀,而且非常容易出錯...