Google Guava官方教程(中文版)
1. 引言
Guava工程包含了若干被Google的 Java項目廣泛依賴 的核心庫,例如:集合 [collections] 、緩存 [caching] 、原生類型支持 [primitives support] 、并發庫 [concurrency libraries] 、通用注解 [common annotations] 、字符串處理 [string processing] 、I/O 等等。 所有這些工具每天都在被Google的工程師應用在產品服務中。
查閱Javadoc并不一定是學習這些庫最有效的方式。在此,我們希望通過此文檔為Guava中最流行和最強大的功能,提供更具可讀性和解釋性的說明。
2. 譯文格式說明
Guava中的類被首次引用時,都會鏈接到Guava的API文檔。如:Optional。
Guava和JDK中的方法被引用時,一般都會鏈接到Guava或JDK的API文檔,一些人所共知的JDK方法除外。如:Optional.of(T), Map.get(key)。
譯者對文檔的額外說明以斜體顯示,并且以“譯者注:”開始。
3. 目錄
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 反射機制工具類
GitHub 在線文檔
Guava 是一個 Google 的基于java1.6的類庫集合的擴展項目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 這些高質量的 API 可以使你的JAVa代碼更加優雅,更加簡潔,讓你工作更加輕松愉悅。下面我們就開啟優雅Java編程學習之旅!
3.1 項目相關信息
- 官方首頁:http://code.google.com/p/guava-libraries
- 官方下載:http://code.google.com/p/guava-libraries/downloads/list
- 官方文檔:http://docs.guava-libraries.googlecode.com/git/javadoc
- http://www.ostools.net/apidocs/apidoc?api=guava
3.2 源碼包的簡單說明:
- com.google.common.annotations:普通注解類型。
- com.google.common.base:基本工具類庫和接口。
- com.google.common.cache:緩存工具包,非常簡單易用且功能強大的JVM內緩存。
- com.google.common.collect:帶泛型的集合接口擴展和實現,以及工具類,這里你會發現很多好玩的集合。
- com.google.common.eventbus:發布訂閱風格的事件總線。
- com.google.common.hash: 哈希工具包。
- com.google.common.io:I/O工具包。
- com.google.common.math:原始算術類型和超大數的運算工具包。
- com.google.common.net:網絡工具包。
- com.google.common.primitives:八種原始類型和無符號類型的靜態工具包。
- com.google.common.reflect:反射工具包。
- com.google.common.util.concurrent:多線程工具包。
4. 類庫使用手冊
1、基本工具類:讓使用Java語言更令人愉悅。
- 使用和避免 null:null 有語言歧義,會產生令人費解的錯誤,反正他總是讓人不爽。很多 Guava的工具類在遇到null時會直接拒絕或出錯,而不是默默地接受他們。
- 前提條件:更容易的對你的方法進行前提條件的測試。
- 常見的對象方法: 簡化了Object常用方法的實現, 如 hashCode() 和 toString()。
- 排序: Guava 強大的 “fluent Comparator”比較器, 提供多關鍵字排序。
- Throwable類: 簡化了異常檢查和錯誤傳播。
2、集合類:集合類庫是 Guava 對 JDK 集合類的擴展, 這是 Guava 項目最完善和為人所知的部分。
- Immutable collections(不變的集合): 防御性編程, 不可修改的集合,并且提高了效率。
- New collection types(新集合類型):JDK collections 沒有的一些集合類型,主要有:multisets,multimaps,tables, bidirectional maps等等
- Powerful collection utilities(強大的集合工具類): java.util.Collections 中未包含的常用操作工具類
- Extension utilities(擴展工具類): 給 Collection 對象添加一個裝飾器? 實現迭代器? 我們可以更容易使用這些方法。
3、緩存: 本地緩存,可以很方便的操作緩存對象,并且支持各種緩存失效行為模式。
4、Functional idioms(函數式): 簡潔, Guava實現了Java的函數式編程,可以顯著簡化代碼。
5、Concurrency(并發):強大,簡單的抽象,讓我們更容易實現簡單正確的并發性代碼。
- ListenableFuture(可監聽的Future): Futures,用于異步完成的回調。
- Service: 控制事件的啟動和關閉,為你管理復雜的狀態邏輯。
6、Strings: 一個非常非常有用的字符串工具類: 提供 splitting,joining, padding 等操作。
7、Primitives: 擴展 JDK 中未提供的對原生類型(如int、char等)的操作, 包括某些類型的無符號的變量。
8、Ranges: Guava 一個強大的 API,提供 Comparable 類型的范圍處理, 包括連續和離散的情況。
9、I/O: 簡化 I/O 操作, 特別是對 I/O 流和文件的操作, for Java 5 and 6.
10、Hashing: 提供比 Object.hashCode() 更復雜的 hash 方法, 提供 Bloom filters.
11、EventBus: 基于發布-訂閱模式的組件通信,但是不需要明確地注冊在委托對象中。
12、Math: 優化的 math 工具類,經過完整測試。
13、Reflection: Guava 的 Java 反射機制工具類。
原文鏈接:http://ifeve.com/google-guava/
總結
以上是生活随笔為你收集整理的Google Guava官方教程(中文版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你应该更新的Java知识
- 下一篇: Android自带的emoji表情的使用