Effective Java讀書筆記--第8章 通用程序設計

個人讀書筆記美尸,部分沒讀懂的知識點可能會簡單概括或缺失冤议,以后反復閱讀后再完善。

第8章 通用程序設計

第45條:將局部變量的作用域最小化

最有力的方法就是在第一次使用它的地方聲明师坎∷∷幔或者使方法小而集中。

第46條:for-each循環(huán)優(yōu)先于傳統(tǒng)的for循環(huán)

for-each不會有性能上的損失胯陋。for-each對數(shù)組索引的邊界值只計算一次蕊温。

for-each在簡潔性和預防Bug有優(yōu)勢。

有三種情況無法使用for-each循環(huán):

1惶岭、過濾

如果需要遍歷集合寿弱,并刪除選定的元素,就需要顯式的迭代器按灶,以便可以調(diào)用remove方法症革。

2、轉(zhuǎn)換

如果需要遍歷列表或者數(shù)組鸯旁,并取代它部分或者全部的元素值噪矛,就要列表迭代器或者數(shù)組索引量蕊,以便設置元素值。

3艇挨、平行迭代

如果需要并行地遍歷多個集合残炮,就需要顯式地控制迭代器或者索引變量,以便所有迭代器或者索引變量都可以得到同步前移缩滨。

第47條:了解和使用類庫

使用幫助類庫可以充分利用別人的經(jīng)驗势就。不必浪費時間在底層的細節(jié)上。標準類庫的性能往往會隨時間的推移而不斷提高脉漏。
也可以使自己的代碼融入主流苞冯。

第48條:如果需要精確的答案,請避免使用float和double

float和double類型主要是為了科學計算和工程計算而設計的侧巨。它們執(zhí)行二進制浮點運算舅锄。
float和double類型尤其不適合用于貨幣計算。

如果需要有舍入行為司忱,推薦使用BigDecimal,如果涉及數(shù)額不大皇忿,不介意記錄十進制小數(shù)點,就可以使用int或long坦仍。

如果數(shù)值范圍不超過9位十進制數(shù)字鳍烁,就可以使用int;如果不超過18位繁扎,就使用long老翘,如果超過18位,就使用BigDecimal锻离。

第49條: 基本類型優(yōu)于裝箱基本類型

基本類型只有值,而裝箱基本類型具有與它們的值不同的同一性墓怀。

基本類型只有功能完備的值汽纠,而每個裝箱基本類型還有個非功能值:null。

基本類型比裝箱基本類型更節(jié)省時間和空間傀履。

第50條: 如果其他類型更適合虱朵,則盡量避免使用字符串

字符串不適合代替其他的值類型

字符串不適合代替枚舉類型

字符串不適合代替聚集類型

一個實體有多個組件,用字符串的話钓账,訪問單獨的域時還要解析字符串

字符串也不適合代替能力表(capabilities)

第51條: 當心字符串連接的性能

不要使用字符串連接操作符來合并多個字符串碴犬,除非性能無關(guān)緊要。
相反梆暮,應該使用StringBuilder的append方法服协。

第52條: 通過接口引用對象

如果有合適的接口類型存在,那么對于參數(shù)啦粹、返回值偿荷、變量和域來說窘游,就都應該使用接口類型進行聲明。

第53條: 接口優(yōu)先于反射機制

反射機制允許一個類使用另一個類跳纳,即使當前者被編譯時后者還根本不存在忍饰。
壞處:喪失了編譯時類型檢查的好處。執(zhí)行反射訪問所需要的代碼非常笨拙和冗長寺庄。
性能有所損失艾蓝。

第54條: 謹慎地使用本地方法

本地方法是指用本地程序設計語言(比如C或者C++) 來編寫的特殊方法。

第55條: 謹慎地進行優(yōu)化

第56條: 遵守普遍接受的命名慣例

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末斗塘,一起剝皮案震驚了整個濱河市赢织,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌逛拱,老刑警劉巖敌厘,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異朽合,居然都是意外死亡俱两,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門曹步,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宪彩,“玉大人,你說我怎么就攤上這事讲婚∧蚩祝” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵筹麸,是天一觀的道長活合。 經(jīng)常有香客問我,道長物赶,這世上最難降的妖魔是什么白指? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮酵紫,結(jié)果婚禮上告嘲,老公的妹妹穿的比我還像新娘。我一直安慰自己奖地,他們只是感情好橄唬,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著参歹,像睡著了一般仰楚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天缸血,我揣著相機與錄音蜜氨,去河邊找鬼。 笑死捎泻,一個胖子當著我的面吹牛飒炎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播笆豁,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼郎汪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了闯狱?” 一聲冷哼從身側(cè)響起煞赢,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哄孤,沒想到半個月后照筑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瘦陈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年凝危,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晨逝。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛾默,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捉貌,到底是詐尸還是另有隱情支鸡,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布趁窃,位于F島的核電站牧挣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏醒陆。R本人自食惡果不足惜浸踩,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望统求。 院中可真熱鬧,春花似錦据块、人聲如沸码邻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽像屋。三九已至,卻和暖如春边篮,著一層夾襖步出監(jiān)牢的瞬間己莺,已是汗流浹背奏甫。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凌受,地道東北人阵子。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像胜蛉,于是被迫代替她去往敵國和親挠进。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348