用戶指南java
Guava包含Google在Java項目中用到的一些核心庫:collections, caching, primitives support, concurrency 庫, common annotations, string 處理, I/O等。Google工程師們在開發中天天都使用這些工具。編程
可是,要學習如何用好這些庫,通讀Javadoc並非最有效的方法。在這裏,咱們嘗試用一種可讀性強、輕鬆愉快的方法來介紹Guava中最經常使用和最強大的特性。緩存
這個wiki還在編寫過程當中,一些部分可能還未完成。併發
- Basic utilities: 讓編寫Java更愉快
- 使用和避免使用null: null 含義模糊,可能引發莫名其妙的error,並且就是讓人討厭。不少Guava utilities拒絕盲目使用null。
- 前置條件(preconditions): 更方便地測試方法的前置條件。
- Common object方法: 簡化Object類方法的實現,如hashCode()和toString()。
- 排序: Guava強大的"fluent Comparator"類.
- 拋出異常: 簡化exception和error的傳遞和檢驗。
- Collections: Guava對JDK collections ecosystem的擴展。這是Guava最成熟和最經常使用的部分之一。
- Caches: 正確實現的本地緩存,支持多種多樣的有效期(expiration)設定。
- Functional idioms: 謹慎使用Guava的functional idiom能夠顯著簡化代碼。
- Concurrency: 強大而簡潔的抽象結構讓編寫併發代碼更簡單。
- Strings: 一些極其有用的string utilities:splitting, joining, padding等。
- Primitives: 補充JDK中沒有的,如int和char等基本類型的操做。包括一些類型的unsigned變體。
- Ranges: Guava's有強大的API來處理Comparable類型的範圍問題,包括值爲連續和值爲離散的類型。
- I/O: 簡化I/O操做,尤爲是在I/O流和文件上。支持Java 5和6。
- Hashing: 比Object.hashCode()更高級的hash工具,包括Bloom filter。
- EventBus: Publish-subscribe-style的組件交流,無需組件間顯式註冊。
- Math: JDK中沒有的,優化後的、完全測試過的math utilities。
- Reflection: 提供Java的反射功能的Guava utilities。
- 小提示: 讓你駕輕就熟地運用Guava。
- 理念: Guava是什麼/不是什麼,及咱們的目標。
- 在你的build中使用Guava,如Maven, Gradle等管理工具。
- 使用ProGuard來避免在你的JAR中加入冗餘的Guava部件。
- Apache Commons equivalents,幫助你翻譯使用了Apache Commons Collections的代碼。
- 兼容性:Guava各個版本的更新細節。
- 提議墳場,被完全否決的特性提議。
- 友情連接,咱們欣賞的其餘開源項目。
注意: 要討論本wiki的內容,請發郵件至guava-discuss mailing list。函數
中文翻譯自Guava官方文檔:GuavaExplained - Introduction工具