原创 23種設計模式(11)組合模式(Composite模式)

組合模式,就是在一個對象中包含其他對象,這些被包含的對象可能是終點對象(不再包含別的對象),也有可能是非終點對象(其內部還包含其他對象,或叫組對象),我們將對象稱爲節點,即一個根節點包含許多子節點,這些子節點有的不再包含子節點,而

原创 23種設計模式(15)觀察者模式

當一個對象變化時,其它依賴該對象的對象都會收到通知,並且隨着變化!對象之間是一種一對多的關係 1、創建一個觀察者接口 public interface Observer { public void update();

原创 八大排序算法(1)——冒泡排序

一、原理: 兩兩比較,第一次將最大值放到數組最後,第二次將第二大值放到數組倒數第二位置,循環往復 二、代碼實現 private void BubbleSort(int[] array) { //i < arr.length-1是

原创 23種設計模式(14)模板方法模式(Template Method)

a.模板方法模式封裝了不變部分,擴展可變部分。它把認爲是不變部分的算法封裝到父類中實現,而把可變部分算法由子類繼承實現,便於子類繼續擴展。 b.它在父類中提取了公共的部分代碼,便於代碼複用。 c.部分方法是由子類實現的,因此子類可

原创 23種設計模式(16)迭代器模式(Iterator模式)

迭代器模式主要包含以下角色: 1、抽象聚合(Aggregate)角色:定義存儲、添加、刪除聚合對象以及創建迭代器對象的接口。 2、具體聚合(ConcreteAggregate)角色:實現抽象聚合類,返回一個具體迭代器的實例。 3、

原创 23種設計模式(13)策略模式(Strategy模式)

把具體的算法實現從業務邏輯中剝離出來,成爲一系列獨立算法類,使得它們可以相互替換 1、創建接口 //攻取西川的策略 public interface IOccupationStrategyWestOfSiChuan {

原创 八大排序算法(2)——選擇排序

一、原理 兩元素之間一一對比,不進行位置交換,對比完畢挑選出最小值,將最小值與第一個位置元素進行交換。 同理,挑選出第二小的值,與第二個位置元素進行交換交換,循環往復 二、代碼實現 private void selectionSo

原创 八大排序算法(3)——插入排序

一、原理 將需要插入的元素之前的所有元素看做是有序的集合,將需要插入的元素之後(包括當前的元素)的所有元素看做是無序集合。將需要插入的元素和有序集合的元素從後向前一一對比,若比需要插入的元素值大,則將需要插入的元素前移一位,被對比

原创 八大排序算法(4)——希爾排序(縮小增量排序)

一、原理 在插入排序基礎上,在一個list中,每次遞減劃分步長,選擇組的隊員進行比較,索引位置不變,value值交換大小,數據朝着局部有序的方向發展。 剛開始時候雖然分組比較多,但每組數據很少,組數減小後每組數據多但基本有序,而插

原创 阿里巴巴Java開發手冊個人總結

以下都是自己編寫代碼時候沒有遵守開發手冊的點,記錄下來,避免以後再犯 一、編碼規約 (一)命名風格 1、【強制】抽象類命名使用 Abstract 或 Base 開頭;異常類命名使用 Exception 結尾;測試類命名以它要測試的

原创 redis RDB和AOF備份

一、RDB持久化 1、redis文件夾中有一個dump.rdb文件用於持久化,RDB是通過保存鍵值對數據來進行持久化 2、使用save或bgsave命令手動持久化,save阻塞線程,拒絕一切訪問,持久化完成後解除阻塞;bgsave

原创 常見類

一、Object 1、clone方法:保護方法,實現對象的淺複製,只有實現了Cloneable接口才可以調用該方法,否則拋出CloneNotSupportedException異常。 2、getClass方法 3、toString

原创 密碼學技術總結

信息安全的四類特性: 1、機密性:爲了防止信息被竊聽,對應的密碼技術有對稱密碼和公鑰密碼。 2、完整性:爲了防止信息被篡改,對應的密碼技術有消息認證碼和數字簽名。 3、認證:爲了防止攻擊者僞裝成真正的發送者,對應的密碼技術有消息認

原创 SpringIoc個人總結

一、掃描順序 1、項目先讀取web.xml文件,根據如下配置讀取applicationcontext.xml文件 <context-param> <param-name>contextConfigLocation</param-

原创 八大排序算法(5)——快速排序

一、原理 從數組中選取一個標準數,小於標準數的元素放在左邊、大於標準數的元素放在右邊,然後把分開的兩個數組再進行以上操作,此步驟可通過遞歸來實現 二、代碼實現 三、時間複雜度