原创 Java對於圖片的操作
最近工作上用到圖片旋轉,所以來偏圖片旋轉的文章。其中碰到不少坑。 以下實現了旋轉90度的倍數。方便我們瞭解旋轉是怎麼做的 ,如果要旋轉任意角度,可以用Java自帶的thumbnails(文章後面介紹) import org.sp
原创 lombok 簡單入門
lombok 提供了簡單的註解的形式來幫助我們簡化消除一些必須有但顯得很臃腫的 java 代碼。特別是相對於 POJO. lombok 的官方網址:http://projectlombok.org/ .eclipse / m
原创 HashMap的存儲原理
1. HashMap的數據結構 數據結構中有數組和鏈表來實現對數據的存儲,但這兩者基本上是兩個極端。 數組 數組存儲區間是連續的,佔用內存嚴重,故空間複雜的很大。但數組的二分查找時間複雜度小,爲O(1);數組的特點是:尋址
原创 Java併發工具類CountDownLatch和CyclicBarrier
Java併發工具類CountDownLatch和CyclicBarrier 1.CountDownLatch CountDownLatch允許一個或
原创 動態代理之CGLib
動態代理之CGLib jdk動態代理和cglib動態代理。兩種方法同時存在,各有優劣。 jdk動態代理是由Java內部的反射機制來實現的,cglib動態代理底層則是藉助asm來實現的。 總的來說,反射機制在生成類的過程中比較
原创 單例模式
單例模式有懶漢式和餓漢式 先來懶漢式 public class Singleton { private static Singleton singleton; private Singleton(){}
原创 Executor,Executors,ExecutorService
1.Excutor 源碼非常簡單,只有一個execute(Runnable command)回調接口 public interface Executor { /** * Executes the
原创 Disruptor之從Ringbuffer讀取
如何使用Disruptor(二)從Ringbuffer讀 ConsumerBarrier與消費者 這裏我要稍微反過來介紹,因爲總的來說讀取數據這一過程比寫數據要容易理解。假設通過一些“魔法”已經把數據寫入到Ring Buffe
原创 Disruptor入門
獲得Disruptor 可以通過Maven或者下載jar來安裝Disruptor。只要把對應的jar放在Java classpath就可以了。 基本的事件生產和消費 我們從一個簡單的例子開始學習Disruptor:生產者傳遞一個lon
原创 Redis的安裝和部署
Redis的安裝和部署 基本知識 1、Redis的數據類型: 字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈
原创 連接池技術
爲什麼要使用連接池 數據庫連接的建立及關閉資源消耗巨大。傳統數據庫訪問方式:一次數據庫訪問對應一個物理連接,每次操作數據庫都要打開、關閉該物理連接, 系統性嚴重受損。 解決方案:數據庫連接池(Connection Pool)。 系
原创 activeMQ的安裝與簡單入門
安裝acticerMQ 1 下載 http://activemq.apache.org/ 解壓後,可以看目錄下有以下文件和目錄activemq-all-5.5.0.jar:所有MQ JAR包
原创 Java動態代理
代理模式 代理模式是常用的java設計模式,他的特徵是代理類與委託類有同樣的接口,代理類主要負責爲委託類預處理消息、過濾消息、把消息轉發給委託類,以及事後處理消息等。代理類與委託類之間通常會存在關聯關係,一個代理類的對象與一個委託類的對
原创 縮放圖像、切割圖像、圖像類型轉換、彩色轉黑白、文字水印、圖片水印
縮放圖像、切割圖像、圖像類型轉換、彩色轉黑白、文字水印、圖片水印等 import java.awt.AlphaComposite; import j
原创 多線程之join
t.join()方法阻塞調用此方法的線程(calling thread),直到線程t完成,此線程再繼續;通常用於在main()主線程內,等待其它線程完成再結束main()主線程。 package thread; /** * T1執行之後