原创 improving performance of your web page by use gzip in you web server.

How to enable GZIP in my tomcat server? Here is how to enable GZIP compression on Tomcat: edit file /conf/server.xml a

原创 設計模式之策略模式

策略模式:“策略”二字等同於算法,當現實系統中需要對算法動態指定,並且可以互相替換,可以抽象出算法的調用接口,具體的算法實現由具體的策略角色去實現,根據里氏替換原則,任何出現父類的地方都可以使用它的子類去替換,這樣符合我們的業務需求。  

原创 設計模式-責任鏈模式(代碼)

模式動機: 職責鏈可以是一條直線、一個環或者一個樹形結構,最常見的職責鏈是直線型,即沿着一條單向的鏈來傳遞請求。     鏈上的每一個對象都是請求處理者,職責鏈模式可以將請求的處理者組織成一條鏈,並使請求沿着鏈傳遞,由鏈上的處理者對請求進

原创 Apache commons-pool 技術

Commons-Pool 首先看下兩個重要的類結構: ObjectPool defines a simple pooling interface. GenericObjectPool: ObjectPool implementat

原创 Google Guice 綁定2

上一章簡單介紹了,如何使用Guice框架來完成接口(父類)和具體的實現類(子類)之間的關聯。通過MyModule中: binder.bind(Hello.class).to(HelloImpl.class).in(Singleton.cl

原创 Google Guice 注入(@Inject註解)

上一節介紹通過註解來實現綁定關係,這一節介紹如何通過@Inject來完成依賴注入的功能: (1)屬性注入 (2)構造方法注入 (3)setter方法注入 一.屬性注入 (1)創建一個接口Hello.java和一個實現類HelloImpl

原创 責任鏈模式-處理雙向的消息

責任鏈模式處理request和response的消息(模擬Tomcat裏面的Filter過濾器) (1)創建一個WebFilter接口 package com.alan.chainOfResponsibility.web; public

原创 設計模式 - 組合模式

組合模式:主要處理樹形結構以處理“整體-部分之間”的層次關係。做到對單個對象和組合對象的處理方式一樣。 下面以管理者和普通員工來說明組合模式的應用 (1)創建基本員工類 package com.demo.dp.composite; p

原创 設計模式之觀察者模式

觀察者模式:定義對象間一對多的依賴關係,當一個對象發生變化後會立即通知其他對象。 生活中有很多這種例子,當一個事件發生會觸發多個響應對象來對這個事件的發生做出自己的響應,比如下面這個例子: 我和妹妹讓媽媽告訴我們飯做好了,這樣我們就可以來

原创 java雜記

System.getProperty("user.dir");這個可以得到java工程的路徑。

原创 BigDecimal 處理高精度的浮點數

BigDecimal是處理高精度的浮點數運算的常用的一個類 當需要將BigDecimal中保存的浮點數值打印出來,特別是在頁面上顯示的時候,就有可能遇到預想之外的科學技術法表示的問題。 一般直接使用 BigDecimal.toSt

原创 Java多線程編程--(8)學習Java5.0 併發編程包--線程池、Callable & Future 簡介

線程池是程序設計領域池化技術的一種應用(數據庫連接池也是一個典型的池化技術),池化技術解決了大量的短請求帶來的系統頻繁創建對象對性能的影響。我們可以實現自己的線程池,但往往因爲考慮不周全如容錯性、自動擴容與縮容等導致性能不佳!Java5.

原创 Java Concurrent Lock鎖

Lock比傳統線程模型中的Synchronied方式更加面向對象,與生活中的鎖類似,鎖本身也應該是一個對象.兩個線程執行的代碼段要實現同步互斥的效果,它們必須用同一個Lock對象,鎖是在代表要操作的資源的類的內部方法中,而不是線程代碼中.

原创 設計模式之迭代器模式(代碼)

下面是模擬java裏面的ArrayList和LinkedList的迭代器的實現原理 (1)首先創建一個集合類Collection package com.alan.iterator; public interface Collectio

原创 Java concurrent包裏面的TimeUnit使用方法

TimeUnit是一個枚舉類型,可以將時間方便快捷的轉換爲(天、時、分、秒、納秒)day,hour,minute,second,millli... 有了這個類我們可以方便將時間進行轉換 下面講解TimeUnit.XX.toXxxxx方法的