Vincent.Chan‘s Blog

          常用鏈接

          統(tǒng)計

          積分與排名

          網(wǎng)站

          最新評論

          Practical Java

          1一般技術(shù)(GeneralTechniques)


          實踐1:參數(shù)以byvalue方式而非byreference方式傳遞

          實踐2:對不變的data和objectreference使用final

          實踐3:缺省情況下所有non-static函數(shù)都可被覆寫

          實踐4:在arrays和vectors之間慎重選擇

          實踐5:多態(tài)(po1ymorphism)優(yōu)于instanceof

          實踐6:必要時才使用instanceof

          實踐7:一旦不再需要objectreferences,就將它設(shè)為null

          2對象與相等性(ObjectsandEquality)


          實踐8:區(qū)分reference型別和primitive型別

          實踐9:區(qū)分==和equals()

          實踐10:不要依賴equals()的缺省實現(xiàn)

          實踐11:實現(xiàn)equals()時必須深思熟慮

          實踐12:實現(xiàn)equals()時優(yōu)先考慮使用getClass()

          實踐13:調(diào)用super.equals()以喚起baseclass的相關(guān)行為

          實踐14:在equals()函數(shù)中謹慎使用instanceof

          實踐15:實現(xiàn)equals()時需遵循某些規(guī)則

          3異常處理(ExceptionHandling)


          實踐16:認識[異??刂屏鱙(exceptioncontrolflow)機制

          實踐17:絕對不可輕忽異常(Neverignoreanexception)

          實踐18:千萬不要遮掩異常(Neverhideanexception)

          實踐19:明察throws子句的缺點

          實踐20:細致而全面地理解throws子句

          實踐21:使用finally避免資源泄漏(resourceleaks)

          實踐22:不要從try區(qū)段中返回

          實踐23:將try/catch區(qū)段置于循環(huán)之外

          實踐24:不要將異常(exceptions)用于流程控制

          實踐25:不要每逢出錯就使用異常(exceptions)

          實踐26:在構(gòu)造函數(shù)(constructors)中拋出異常

          實踐27:拋出異常之前先將對象恢復(fù)為有效狀態(tài)(validstate)

          4性能(Performance)


          實踐28:先把焦點放在設(shè)計.數(shù)據(jù)結(jié)構(gòu)和算法身上

          實踐29:不要倚賴編譯期(compile-time)優(yōu)化技術(shù)

          實踐30:理解運行期(mntime)代碼優(yōu)化技術(shù)

          實踐31:如欲進行字符串接合,StringBuffer優(yōu)于String

          實踐32:將對象的創(chuàng)建成本(creationcost)降至最小

          實踐33:慎防未用上的對象(unusedobjects)

          實踐34:將同步化(synchronization)降至最低

          實踐35:盡可能使用stack變量

          實踐36:使用static.final和private函數(shù)以促成inlining

          實踐37:instance變量的初始化一次就好

          實踐38:使用基本型別(primitivetypes)使代碼更快更小

          實踐39:不要使用Enumeration或Iterator來遍歷vector

          實踐40:使用System.arraycopy()來復(fù)制arrays

          實踐41:優(yōu)先使用array,然后才考慮Vector和ArrayList

          實踐42:盡可能復(fù)用(reuse)對象

          實踐43:使用緩式評估(延遲求值,lazyevaluation)

          實踐44:以手工方式將代碼優(yōu)化

          實踐45:編譯為本機代碼(Compiletonativecode)

          5多線程(Multithreading)


          實踐46:面對instance函數(shù),synchronized鎖定的是對象(objects)而非函數(shù)(methods)或代碼(code)

          實踐47:弄清楚synchronizedstatics函數(shù)與synchronizedinstance函數(shù)之間的差異

          實踐48:以[private數(shù)據(jù)十相應(yīng)訪問函數(shù)(accessor)]替換[public/protected數(shù)據(jù)]

          實踐49:避免無謂的同步控制

          實踐50:訪問共享變量時請使用synchronized或volatile

          實踐51:在單一操作(singleoperation)中鎖定所有用到的對象

          實踐52:以固定而全局性的順序取得多個locks(機鎖)以避免死鎖

          實踐53:優(yōu)先使用notifyAll()而非notify()

          實踐54:針對wait()和notifyAll()使用旋鎖(spinlocks)

          實踐55:使用wait()和notifyAll()替換輪詢循環(huán)(pollingloops)

          實踐56:不要對lockedobject(上鎖對象)之objectreference重新賦值

          實踐57:不要調(diào)用stop()或suspend()

          實踐58:通過線程(threads)之間的協(xié)作來中止線程

          6類與接口(ClassesandInterfaces)


          實踐59:運用interfaces支持多重繼承(multipleinheritance)

          實踐60:避免interfaces中的函數(shù)發(fā)生沖突

          實踐61:如需提供部分實現(xiàn)(partialimplementation)請使用abstractclasses(抽象類)

          實踐62:區(qū)分interface.abstractclass和concreteclass

          實踐63:審慎地定義和實現(xiàn)immutableclasses(不可變類)

          實踐64:欲傳遞或接收mutableobjects(可變對象)之objectreferences時,請實施clone()

          實踐65:使用繼承(inheritance)或委托(delegation)來定義immutableclasses(不可變類)

          實踐66:實現(xiàn)clone()時記得調(diào)用super.clone()

          實踐67:別只依賴finalize()清理non-memory(內(nèi)存以外)的資源

          實踐68:在構(gòu)造函數(shù)內(nèi)調(diào)用non-final函數(shù)時要當(dāng)心

          附錄:如何學(xué)習(xí)Java

          進階讀物(FurtherReading)

          索引(Index)


          posted on 2006-02-20 21:10 Vincent.Chen 閱讀(142) 評論(0)  編輯  收藏 所屬分類: Java

          主站蜘蛛池模板: 义乌市| 基隆市| 隆昌县| 古田县| 平顶山市| 长沙市| 泗水县| 右玉县| 陵水| 湖北省| 萨迦县| 海盐县| 自贡市| 甘谷县| 濮阳市| 博客| 长岛县| 九寨沟县| 崇礼县| 铁岭市| 砀山县| 修水县| 丹棱县| 桑植县| 五莲县| 莆田市| 宜春市| 平顺县| 苏尼特左旗| 武邑县| 巴林右旗| 墨江| 获嘉县| 栾城县| 新蔡县| 汾西县| 长寿区| 大名县| 梅州市| 延边| 承德县|