原创 HashMap,HashTable,TreeMap,ConcurrentHashMap 的區別

如下結論來源於源碼 集合 HashMap HashTable TreeMap ConcurrentHashMap 實現 public class HashMap<K,V> extends AbstractMap<K,V>  implem

原创 ArrayList 和 LinkList 的區別--源碼解析

  基於jdk1.8,從源碼中獲取的總結   linklist arraylist 源碼展示及說明 public class LinkedList<E> extends AbstractSequentialList<E> impl

原创 String 的使用及引申

一、String的源碼簡扒 String 類是 final 類,String的實現是依賴 char+數組,且數組(在內存中存儲位置是連續的)爲 final 類型(不可修改)。 所以,String 創建出來的對象不可修改。 順便一提,定義c

原创 23種涉及模式及設計原則簡略總結

計模式的原則: 開閉原則:拓展開放,修改關閉。模塊化開發 里氏替換:子類儘量不要重寫父類,保證子類代碼可讀性,複用性。 依賴倒置:面向接口編程,不面向實現編程。提高代碼靈活性,降低模塊耦合。 單一職責:責任功能單一化。提高代碼可讀性,可維

原创 設計原則(3) -- 依賴倒置原則

依賴倒置原則的定義 依賴倒置原則(Dependence Inversion Principle,DIP)是 Object Mentor 公司總裁羅伯特·馬丁(Robert C.Martin)於 1996 年在 C++ Report 上發表

原创 設計模式(8)-- 橋接模式

在現實生活中,某些類具有兩個或多個維度的變化,如圖形既可按形狀分,又可按顏色分。如何設計類似於 Photoshop 這樣的軟件,能畫不同形狀和不同顏色的圖形呢?如果用繼承方式,m 種形狀和 n 種顏色的圖形就有 m×n 種,不但對應的子類

原创 設計模式(4)-- 抽象工廠模式

前面介紹的工廠方法模式中考慮的是一類產品的生產,如畜牧場只養動物、電視機廠只生產電視機、計算機軟件學院只培養計算機軟件專業的學生等。 同種類稱爲同等級,也就是說:工廠方法模式只考慮生產同等級的產品,但是在現實生活中許多工廠是綜合型的工廠,

原创 設計模式(7)-- 適配器模式

在現實生活中,經常出現兩個對象因接口不兼容而不能在一起工作的實例,這時需要第三者進行適配。例如,講中文的人同講英文的人對話時需要一個翻譯,用直流電的筆記本電腦接交流電源時需要一個電源適配器,用計算機訪問照相機的 SD 內存卡時需要一個讀卡

原创 GoF 的 23 種設計模式的分類和功能

設計模式有兩種分類方法,即根據模式的目的來分和根據模式的作用的範圍來分。 1. 根據目的來分 根據模式是用來完成什麼工作來劃分,這種方式可分爲創建型模式、結構型模式和行爲型模式 3 種。 創建型模式:用於描述“怎樣創建對象”,它的主要特點

原创 設計模式(10)-- 外觀模式

在現實生活中,常常存在辦事較複雜的例子,如辦房產證或註冊一家公司,有時要同多個部門聯繫,這時要是有一個綜合部門能解決一切手續問題就好了。 軟件設計也是這樣,當一個系統的功能越來越強,子系統會越來越多,客戶對系統的訪問也變得越來越複雜。這時

原创 設計原則(7) -- 合成複用原則

合成複用原則的定義 合成複用原則(Composite Reuse Principle,CRP)又叫組合/聚合複用原則(Composition/Aggregate Reuse Principle,CARP)。它要求在軟件複用時,要儘量先使用

原创 設計模式(14) -- 策略模式

在現實生活中常常遇到實現某種目標存在多種策略可供選擇的情況,例如,出行旅遊可以乘坐飛機、乘坐火車、騎自行車或自己開私家車等,超市促銷可以釆用打折、送商品、送積分等方法。 在軟件開發中也常常遇到類似的情況,當實現某一個功能存在多種算法或者策

原创 編程思想 -- 第19章 -- 枚舉類型

枚舉類型     關鍵字enum可以將一組具名的值的有限集合創建爲一種新的類型,而這些具名的值可以作爲常規的程序組件使用,這是一種非常有用的功能。     一、基本enum特性     調用enum的values()方法,可以遍歷enum

原创 設計原則(2) -- 里氏替換原則

里氏替換原則的定義 里氏替換原則(Liskov Substitution Principle,LSP)由麻省理工學院計算機科學實驗室的里斯科夫(Liskov)女士在 1987 年的“面向對象技術的高峯會議”(OOPSLA)上發表的一篇文章

原创 UML中的類圖及類圖之間的關係

統一建模語言簡介 統一建模語言(Unified Modeling Language,UML)是用來設計軟件藍圖的可視化建模語言,1997 年被國際對象管理組織(OMG)採納爲面向對象的建模語言的國際標準。它的特點是簡單、統一、圖形化、能表