原创 map的遍歷性能測試

java中遍歷通過不同的元素遍歷map的方式有3種:1.通過keySet遍歷;2.通過entrySet遍歷;3.獲取values遍歷value。通過不同的方式遍歷又分爲foreach和iterator。因爲本文按照這幾個維度,以不同數據量

原创 ArrayStoreException

最近看到一段JDK中ArrayList類中的源碼,其中一段註釋吸引了我的眼球,爲了弄清其含義,特意找了一些資料,寫了一點測試代碼。源代碼如下: /** * Constructs a list containing the elemen

原创 JDK裏的設計模式

下面是JDK中有關23個經典設計模式的示例,在stakeoverflow也有相應的討論:http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns

原创 狀態模式(Stats Pattern)

在實際項目中,應用程序往往需要根據不同的情況做出不同的處理。在開發工程中,需要考慮到各種場景、分支,常常會使用到if..else或者switch case等分支,通過判斷條件處理不同的情況。當這種判斷變得複雜的時候,分支增多,代碼量增多,

原创 組合模式(Composite Pattern)

組合模式,將對象組合成樹形結構以表示“部分-整體”的層次結構,組合模式使得用戶對單個對象和組合對象的使用具有一致性。有時候又叫做部分-整體模式,它使我們樹型結構的問題中,模糊了簡單元素和複雜元素的概念,客戶程序可以像處理簡單元素一樣來處理

原创 觀察者模式(Observer Pattern)

1. 概述   有時被稱作發佈/訂閱模式,觀察者模式定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態發生變化時,會通知所有觀察者對象,使它們能夠自動更新自己。 2. 解決的問題   將一個系統

原创 AES對稱加密

public class AES { private static final String KEY = "99ssavv"; /** * base 64 encode

原创 命令模式(Command Pattern)

1命令模式是一個高內聚的模式。定義如下:將一個請求封裝成一個對象,從而讓你使用不同的請求把客戶端參數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能。  2.角色說明: ● Receive接收者角色該角色就是幹活的角色,命

原创 slf4j優於log4j

之前已經寫過以前簡要的《log4j》,講述了log4j的配置及使用。現在來說說slf4j優於log4j的幾個點。先說結論吧:請儘量使用slf4j。 1.依賴抽象而不是依賴具體實現 slf4j對比Log4J,logback和java.uti

原创 外觀模式(Facade Pattern)

外觀模式: 提供了一個統一的接口,用來訪問子系統中的一羣接口。外觀定義了一個高層接口,讓子系統更容易使用。 有什麼用處: (1)實現了子系統與客戶端之間的鬆耦合關係。(2)客戶端屏蔽了子系統組件,減少了客戶端所需處理的對象數目,並

原创 兩種適配器模式(Adapter Pattern)

1. 概述   適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。 2. 解決的問題   舉個例子:有一個三相插座,可是此時使用的小檯燈的插頭是一個兩相插頭,插不

原创 RocketMQ入門(5.單向(Oneway)發送)

原理:單向(Oneway)發送特點爲只負責發送消息,不等待服務器迴應且沒有回調函數觸發,即只發送請求不等待應答。此方式發送消息的過程耗時非常短,一般在微秒級別。 應用場景:適用於某些耗時非常短,但對可靠性要求並不高的場景,例如日誌收集。

原创 模板方法模式(Template Pattern)

1. 概述   定義一個操作中的算法的骨架,而將步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重定義算法的某些特定步驟。2. 模式中的角色   2.1 抽象類(AbstractClass):實現了模板方法,定義了算法的骨架

原创 java中assert關鍵字

Java2在1.4中新增了一個關鍵字:assert。在程序開發過程中使用它創建一個斷言(assertion)。,它的語法形式有如下所示的兩種形式:1、assert condition;    這裏condition是一個必須爲真(true

原创 裝飾模式(Decorator Pattern)

裝飾模式: 以對客戶透明的方式動態地給一個對象附加上更多的責任。它是通過創建一個包裝對象,也就是裝飾來包裹真實的對象。若要擴展功能,裝飾者比繼承提供了更有彈性的替代方案。 裝飾模式的類圖如下: 在裝飾模式中的角色有:   ●  抽