Google Guava 用戶指南 —- 初始Guava類庫
Guava項目包含多個基于Java基礎的核心類庫:collections(集合), caching(緩存), primitives support(原生類型支持 ), concurrency libraries(并發類庫), common annotations(通用注解), string processing(字符串處理), I/O等。這些工具被google的開發者們廣泛應用在各類產品中。
一般來說,通過JavaDoc并不是學習使用這些類庫的最好方式。所以,我們試著通過一些可讀性較高并且有趣的解釋來幫助開發者了解Guava的特性。
該文檔內容在不斷完善中。
基本工具(Basic utilities)
讓使用Java開發變得更加愉快。
使用并避免null:
null是很模棱兩可的,很多時候會導致令人疑惑的的錯誤,這讓開發人員感到很不舒服。導致很多類似問題的原因都是因為盲目的接受null值。Guava基本工具在處理null的時候一般不會盲目的接受,而是采用拒絕或者快速失敗(fail-fast)的方式處理。
前置條件:
置條件使你的方法更加簡單
常用的Object對象方法:
簡化Object方法方法的實現,比如toString()和hashCode()方法。
排序:
Guava有強大的“流暢的比較器”類。
異常處理:
簡化異常和錯誤的檢查和傳遞
集合(Collections)
Guava對JDK的集合做了擴展,這部分也是Guava中最成熟和被眾所周知的。
不可變集合
可以用作常量的集合,不僅可以進行防御性編程還能提高性能。
新集合類型
實現了一些jdk本身并提供的新集合類型:multisets(多重集),multimaps(多重映射),tables(表),bidirectional maps(雙向映射)等。
強大的工具集合,
提供了一些java.util.Collections中不提供的常用操作。
擴展工具
很輕易的創建集合的裝飾器,或實現迭代器
緩存(Caches)
很實用的本地緩存,并支持各種各樣的失效策略。
函數式風格(Functional idioms)
可以顯著簡化代碼,但請謹慎使用
并發(Concurrency)
強大并且簡單的抽象,讓編寫正確的并發代碼更簡單
ListenableFuture
完成后觸發回調的Future
服務
幫你接管并控制一些復雜的狀態邏輯的開始和結局。
字符串處理(String)
提供幾個非常有用的字符串工具:分割,連接,填充等
原生類型(Primitives)
支持一些jdk并不提供的對基本類型(如intchar,包括某些類型的無符號(unsined)形式)的操作
區間(Ranges)
Guava對可比較的類型提供了強大的API來處理范圍。包括連續和離散類型。
I / O
簡化的I/O操作,特別是針對java5和java6的流和文件的I/O操作。
散列(Hashing)
提供比Object.hashCode()更復雜的散列實現,并提供 布隆過濾器 (Bloom Filter)的實現
事件總線(EventBus)
采用發布-訂閱模式進行組件之間的通信,而無需顯式地注冊。
數學運算(Math)
提供了JDK中并不提供的優化的、經過充分測試的數學工具類
反射(Reflection)
反射機制工具類