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包一樣套路。