Google Guava 使用者指南 —- 初始Guava類庫

hollischuang發表於2015-12-27

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)

反射機制工具類

相關文章