引言html
Guava工程包含了若干被Google的 Java項目普遍依賴 的核心庫,例如:集合 [collections] 、緩存 [caching] 、原生類型支持 [primitives support] 、併發庫 [concurrency libraries] 、通用註解 [common annotations] 、字符串處理 [string processing] 、I/O 等等。 全部這些工具天天都在被Google的工程師應用在產品服務中。java
查閱Javadoc並不必定是學習這些庫最有效的方式。在此,咱們但願經過此文檔爲Guava中最流行和最強大的功能,提供更具可讀性和解釋性的說明。git
譯文格式說明編程
- Guava中的類被首次引用時,都會連接到Guava的API文檔。如:Optional<T>。
- Guava和JDK中的方法被引用時,通常都會連接到Guava或JDK的API文檔,一些人所共知的JDK方法除外。如:Optional.of(T), Map.get(key)。
- 譯者對文檔的額外說明以斜體顯示,而且以「譯者注:」開始。
目錄緩存
1. 基本工具 [Basic utilities]
讓使用Java語言變得更溫馨併發
1.1 使用和避免null:null是模棱兩可的,會引發使人困惑的錯誤,有些時候它讓人很不舒服。不少Guava工具類用快速失敗拒絕null值,而不是盲目地接受框架
1.2 前置條件: 讓方法中的條件檢查更簡單函數式編程
1.3 常見Object方法: 簡化Object方法實現,如hashCode()和toString()函數
1.4 排序: Guava強大的」流暢風格比較器」工具
1.5 Throwables:簡化了異常和錯誤的傳播與檢查
2. 集合[Collections]
Guava對JDK集合的擴展,這是Guava最成熟和爲人所知的部分
2.1 不可變集合: 用不變的集合進行防護性編程和性能提高。
2.2 新集合類型: multisets, multimaps, tables, bidirectional maps等
2.3 強大的集合工具類: 提供java.util.Collections中沒有的集合工具
2.4 擴展工具類:讓實現和擴展集合類變得更容易,好比建立Collection的裝飾器,或實現迭代器
3. 緩存[Caches]
Guava Cache:本地緩存實現,支持多種緩存過時策略
4. 函數式風格[Functional idioms]
Guava的函數式支持能夠顯著簡化代碼,但請謹慎使用它
5. 併發[Concurrency]
強大而簡單的抽象,讓編寫正確的併發代碼更簡單
5.1 ListenableFuture:完成後觸發回調的Future
5.2 Service框架:抽象可開啓和關閉的服務,幫助你維護服務的狀態邏輯
6. 字符串處理[Strings]
很是有用的字符串工具,包括分割、鏈接、填充等操做
7. 原生類型[Primitives]
擴展 JDK 未提供的原生類型(如int、char)操做, 包括某些類型的無符號形式
8. 區間[Ranges]
可比較類型的區間API,包括連續和離散類型
9. I/O
簡化I/O尤爲是I/O流和文件的操做,針對Java5和6版本
10. 散列[Hash]
提供比Object.hashCode()更復雜的散列實現,並提供布魯姆過濾器的實現
11. 事件總線[EventBus]
發佈-訂閱模式的組件通訊,但組件不須要顯式地註冊到其餘組件中
12. 數學運算[Math]
優化的、充分測試的數學工具類
13. 反射[Reflection]
Guava 的 Java 反射機制工具類
原創文章,轉載請註明: 轉載自併發編程網 – ifeve.com本文連接地址: Google Guava官方教程(中文版)