1. 程式人生 > >Google Guava官方教程

Google Guava官方教程

原文連結 譯文連結 譯者: 沈義揚,羅立樹,何一昕,*武祖 * 校對:方騰飛

引言

Guava工程包含了若干被Google的 Java專案廣泛依賴 的核心庫,例如:集合 [collections] 、快取 [caching] 、原生型別支援 [primitives support] 、併發庫 [concurrency libraries] 、通用註解 [common annotations] 、字串處理 [string processing] 、I/O 等等。 所有這些工具每天都在被Google的工程師應用在產品服務中。

查閱Javadoc並不一定是學習這些庫最有效的方式。在此,我們希望通過此文件為Guava中最流行和最強大的功能,提供更具可讀性和解釋性的說明。

譯文格式說明

  • Guava中的類被首次引用時,都會連結到Guava的API文件。如:Optional
  • 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 反射機制工具類