effective java 學習筆記(一)

來源:互聯網
上載者:User

           最近在豆瓣上看到一些書評,很有感想,其中有一本叫 effective java據說很好,下載了看看,果然大作,很多東西都讀不懂,功力尚淺,還得繼續努力。讀的時候感覺很爽,比講文法的書好看多了。

第一部分 對象的建立和銷毀。

講了5條原則

1.用靜態Factory 方法代替建構函式。
好處:避免建立重複的對象,因為靜態方法不許要建立對象就可以使用,造成不必要的浪費。重複返回同一個對象。保證單態。
Factory 方法可以取更加容易記的名字,而建構函式則不行。
Factory 方法可以返回一個原傳回型別的子類對象,適合於基於介面的架構結構。
缺點: 類如果不包含公有的或受保護的建構函式,就不能被子類化。對於公有的靜態工廠所返回的非公有類,也同樣如此。
命名習慣:valueOf(), getInstance()
2.使用私人的建構函式強化singleton。
singleton代表那些本質上具有惟一性的系統組件。
兩種實現方法。一是定義公有的static final 的類對象。
二是用方法返回一個對象。還有就是序列化的時候應該注意以後在看這方面的內容。
3.通過私人建構函式強化不可執行個體化的能力。
對一些工具類,只包含靜態方法和靜態域,把建構函式定義為私人的,以提高系統的效能。
4.避免重複建立重複的對象。
在迴圈中建立對象的代價是非常昂貴的,所以應該盡量避免建立重複的對象,加入靜態快 static{} 和定義一些final 的常量,這樣可以減少重複對象的定義。提高效能。在對象池尤其是資料庫的串連的時候應該注意重發對象的避免,高效的提高系統效能。
5.消除到期對象的引用。
講了一個記憶體泄露的例子。很經典的棧,在棧的彈出時經常出現到期引用,因為棧自己管理記憶體。
一般而言,只要一個類自己管理記憶體,程式員就應該警惕記憶體泄露,一旦一個元素被釋放掉,則該元素中所包含的任何的對象的引用應該被清空。
另一個來源是緩衝。一旦一個對象的引用放在緩衝裡,就很容易被遺忘。

   水平有限,就把自己看懂的那點東西寫了寫。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.