Google Guava 概要

1. annotations 
4個聲明式的註解
GwtCompatible--google web toolkit 兼容
GwtIncompatible -- 不兼容

2.base
空值的判斷、駝峯轉換、大小寫轉換、字符集、原始類默認值、枚舉操做、比較(返回true /false)、(軟、弱引用)、
Function函數編程(其實是對象,應該獨立一塊知識點)、String操做、校驗(拋異常)

3.cache
利用jdk實現的cache,有「有則取,不然加載」 自動清除數據、多種清除算法、清除回調功能。
用CacheBuilder.newBuilder()
重要的類LocalCache CacheLoader LoadingCache
CacheBuilder.recordStats()用來開啓Guava Cache的統計功能。統計打開後,Cache.stats()方法會返回對象以提供以下統計信息:
hitRate():緩存命中率;
averageLoadPenalty():加載新值的平均時間,單位爲納秒;
evictionCount():緩存項被回收的總數,不包括顯式清除

4.collect
這是一個很大的包。包含各類集合的抽象類。如BiMap ,Multimap SortedMultiMap.
集合的操做類

5.escape
Escapers.Builder builder = Escapers.builder();
builder.addEscape('c',"b");
builder.build().escape("abc");// abb

6.eventbus
設計模式之觀察者模式的實現。聲明式編程的手法,用@Subscribe標註須要監聽的方法,
代碼用了反射(對方法的反射)實現調用訂閱方法。

7.graph
數學上圖的概念。(不明白用處)

8.hash
提供各個類型求hash的方法

9.html
就一個類HtmlEscapers,提供html的轉義。感受有用!

10.io
JDK的io已經夠多了,Guava在來湊一腳

11.net 
網絡地址和端口,已經URL的轉義

12.primitives
對8個原始類型的比較,判斷,拼接

13.reflect
反射的各類方法封裝。Reflection的newProxy()方法很好。

14.util
重點。
Future 的各類封裝。
異步的Callable ,Function。
對Double,DoubleArray,LongMap的原子化封裝類。
有名的RateLimiter

Service固定服務的生命週期NEW STARTING RUNNING STOPPING TERMINATED FAILED,可是和一般的理解不一樣的是,
guava約定 TERMINATED FAILED 是最終狀態,沒法在轉變成其餘狀態。

ListenableFuture 對 JDK的Future的優化,實現異步獲取返回結果
2.1 裝飾者模式得到ListeningExecutorService。
2.2 ListenableFuture listenableFuture = pool.submit()得到ListenableFuture。
2.3 Futures.addCallback()設置回調函數。


15.xml
就一個類XmlEscapers,提供html的轉義。和上面的html包一樣套路。
相關文章
相關標籤/搜索