原创 排序算法比較與總結

一、插入排序 1. 核心思想 共進行 N - 1 趟排序,對於 P = 1 到 P = N - 1 趟,保證從位置0到位置P上的元素爲排序狀態。在第P趟,將位置P上的元素移動到前P + 1個元素的正確位置上,比其更大的元素都向右移動一個位

原创 Java之集合 - ArrayList源碼分析

一、簡介 上圖爲ArrayList的繼承樹,可看出實現了四個接口,分別介紹一下: Serializable:是一個空接口,實現了該接口的類可序列化和反序列化 Cloneable:是一個空接口,實現該接口的類覆蓋了clone()方法,表明

原创 Java設計模式 - 組合模式

1. 定義 將對象組合成樹形結構來表現整體/部分的層次結構,讓用戶以一致的方式處理個別對象以及對象組合。 2. 角色 Component:對象聲明接口 Leaf:葉子結點類 Composite:容器對象類 3. 特點 優點:它定義了一個

原创 Java設計模式 - 建造者模式

1.定義 將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 2.角色 Builder:建造者 ConcreteBuilder:具體建造者 Director:指揮者 Product:產品 3.特點 優點:將產品本

原创 Java設計模式 - 裝飾者模式

1. 定義 動態地將責任附加到對象上,在擴展功能時,該模式提供了比繼承更有彈性的替代方案。 2. 角色 Component:抽象構件 ConcreteComponent:具體構件 Decorator:抽象裝飾類,是抽象構件的子類,內部持有

原创 Java設計模式 - 工廠模式

 工廠模式能夠將對象的創建和使用解耦,且當創建一個對象的過程繁雜時,又有大量地方需要重複創建該對象,使用工廠模式則可以降低代碼的重複率。另外,將對象的創建封裝到工廠類,當創建過程發生改變時,可直接修改工廠類,而無需到每個創建對象的地方修

原创 Java設計模式 - 蠅量模式(享元模式)

1. 定義 運用共享技術有效地支持大量的細粒度對象的複用。 2. 角色 Flyweight:抽象蠅量類 ConcreteFlyweight:具體蠅量類 FlyweightFactory:蠅量工廠   3. 特點 優點:減少內存中對象

原创 C++ Primer Plus 第十二章筆記

1.      調用複製構造函數:當函數按值傳遞對象或函數返回對象時,都將使用複製構造函數。2.      如果類中包含了使用new初始化的指針成員,應當定義一個複製構造函數,以複製指向的數據,而不是指針,稱爲深度賦值。複製的另一種形式只

原创 C++ Primer Plus 第十一章筆記

1.        友元函數不是成員函數,不需要使用限定符,關鍵字friend加在原型前而不能加在定義前。只有類聲明可以決定哪一個函數是友元,因此類聲明仍然控制了哪些函數可以訪問私有數據。2.        只接受一個參數的構造函數定義了

原创 Java之併發 - 創建線程池的方式

一、通過Executors類提供的靜態方法創建 1. newFixedThreadPool public static ExecutorService newFixedThreadPool(int nThreads) { return

原创 線程池源碼分析

一、線程池繼承結構 二、Executor接口 public interface Executor { /** * Executes the given command at some time in the fut

原创 Java設計模式 - 單例模式

目錄 一、介紹 1.定義 2.角色 3.特點 二、實現 1.餓漢式(線程安全) 2.懶漢式 3.懶漢式(雙重檢查加鎖版本) 4. 枚舉方式 5.靜態內部類 一、介紹 1.定義 確保類只有一個實例,並提供一個全局訪問點。 2.角色 Sing

原创 Java 線程池的拒絕策略 RejectedExecutorHandler

當線程池被關閉以後,在execute()方法中提交新任務將被拒絕(線程池被關閉或線程數達到maximumPoolSize),此時會採取定義的拒絕策略。在ThreadPoolExecutor中定義了四個靜態內部類,均實現了Rejected

原创 Java設計模式 - 外觀模式

1. 定義 提供一個統一的接口,用來訪問子系統中的一羣接口,這個高層接口使得子系統更容易使用。 2. 角色 Facade:外觀類 SubSystem:子系統類 3. 特點 優點:實現了客戶和子系統的鬆耦合關係,客戶通過外觀類來對子系統進

原创 Java設計模式 - 命令模式

1. 定義 將“請求”封裝成對象,以便使用不同的請求、隊列或者日誌來參數化其他對象。該模式也支持可撤銷的操作。 2. 角色 Command:抽象命令類 ConcreteCommand:具體命令類 Invoker:調用者 Receiver: