原创 Java設計模式16:迭代器模式(Iterator)

迭代器模式 意圖 提供一種方法順序訪問一個聚合對象中各個元素,而又不暴露該對象的內部表示,其實這個我們就一直在使用List中的Iterator就是迭代器模式實現 適用性 1、訪問一個聚合的對象的內容而又無緒暴露他的內部表示 2、支

原创 Java設計模式18:備忘錄模式(Mementor)

備忘錄模式 意圖 在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態,以後可將該對象恢復到原先保存的狀態。顧名思義,就是提供備忘功能。 適用性 1、必須保存一個對象在摸一時刻的狀態,便於後續對他的恢復 2、

原创 Java設計模式14:命令模式(Command)

Command 意圖 將一個請求封裝成一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日誌,以及支持可撤銷的操作 動機 開發中,我們經常需要向某些對象發送請求,但是我們並不知道接收者是誰,也不知道被請求的操作

原创 Java設計模式1:抽象工廠模式(Abstract Factory)

意圖 提供一個創建一系列相關或相互依賴對象的接口,而無需制定他們具體的類 適用性 一下情況可以使用Abstract Factory模式 一個系統要獨立於它的產品的創建、組合和表示時 一個系統要由多個產品系列中的一個來配置時

原创 Java設計模式19:觀察者模式(Observer)

觀察者模式 意圖 定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於他的對象都得到通知並被自動更新 適用性 1、當一個抽象模型有兩個方面,其中一個依賴另外一個 2、當對一個對象的改變需要同時改變其他對象,而不

原创 Java設計模式17:中介者模式(Mediator)

中介者模式 意圖 用一箇中介對象來封裝一些列的對象交互。中介者是哥哥對象不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變他們之間的交互 適用性 1、一組對象以定義良好但是複雜的方式進行通信。產生的相互依賴關係結構婚戀且難

原创 Java設計模式15:解釋器模式(Interpreter)

解釋器模式 意圖 給定一個語言,定義他的文法的一種表示,並定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子 動機 目前計算機編程語言有好幾百種,但有時候我們還是希望能用一些簡單的語言來實現一些特定的操作,我們只要向計算機輸入

原创 Web技術3:Cookie與Session

Session與Cookie Session與Cookie的作用都是爲了保持訪問用戶與後端服務器的交互狀態。各有優點也各有缺點。 Cokkie 當一個用戶通過HTTP訪問一個服務器時,這個服務器會講一些key/value鍵值對返回給客

原创 Web技術1:http協議詳解

Http http協議:Hyper Text Transfer Protocl,即插我文本傳輸協議,是用於萬維網www服務器傳輸超文本到本地瀏覽器的傳輸協議。Http協議是基於TCP/IP協議來進行傳遞數據的 主要特點 Http協議是

原创 Web技術2:DNS域名解析

DNS域名解析過程 當用戶在瀏覽器中輸入域名按下回車之後,比如,請求www.baidu.com。DNS解析大概有以下10個步驟 1、瀏覽器會檢查緩存中有沒有這個域名對應的解析過的IP地址,如果緩存中有,這個解析過程就結束。瀏覽器緩存

原创 Java 數據結構6:插入,選擇,冒泡排序算法

插入排序 直接插入排序基本思想是每一步將一個待排序的記錄,插入到前面已經排好序的有序序列中去,直到插完所有元素爲止。 private static void insertionSort(int[] array) { i

原创 Java 數據結構5:Hash詳解

哈希表 哈希表也稱散列表(Hash),Hash表是基於健值對(key - value)直接進行訪問的數據結構。但是他的底層是基於數組的,通過特定的哈希函數把key映射到數組的某個下標來加快查找速度,對於哈希表來說,查找元素的複雜度是O

原创 Java 數據結構7:快速排序算法詳解

快速排序 快速排序是對冒泡排序的一種改進,採用分治策略,以減少排序過程中的比較次數。 快速排序的平均運行時間是O(NlogN)。他的最壞慶幸性能爲O(N2)。 快速排序的思想就是分治遞歸,將原數組按照樞紐元分成左邊小右邊大的情況,在對

原创 Java 數據結構4:二叉搜索樹詳解

二叉樹 什麼是樹,爲什麼使用樹 我們知道,對於數組,查找很快,有序的還可以通過二分法查找,但是插入數據卻需要移動一些數據的位置。而鏈表的插入和刪除很快,但是查找數據卻需要從head開始遍歷,那麼有沒有一種數據結構能同時具備數組查找快的

原创 Java 數據結構3:隊列及Queue源碼詳解

隊列 想棧一樣,隊列(queue)也是表。然而,使用隊列時插入在一端進行而刪除在另一端進行,遵循先進先出,後進後出原則,就像排隊一樣 應用 1、打印機隊列 2、還有之前線程裏面講到的,線程池的實現,有有界的和無界的阻塞隊列 Java中