Google Guava 類庫簡介(1)

Guava 是一個 Google 的基於java1.6的類庫集合的擴展項目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 這些高質量的 API 可使你的JAVa代碼更加優雅,更加簡潔,讓你工做更加輕鬆愉悅。下面咱們就開啓優雅Java編程學習之旅!java

  項目相關信息:git

  官方首頁: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編程

  源碼包的簡單說明: 
  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:多線程工具包。api

  類庫使用手冊:緩存

  一.  基本工具類:讓使用Java語言更使人愉悅。網絡

  1. 使用和避免 null:null 有語言歧義, 會產生使人費解的錯誤, 反正他老是讓人不爽。不少 Guava 的工具類在遇到 null 時會直接拒絕或出錯,而不是默默地接受他們。
  2. 前提條件:更容易的對你的方法進行前提條件的測試。
  3. 常見的對象方法: 簡化了Object經常使用方法的實現, 如 hashCode() 和 toString()。
  4. 排序: Guava 強大的 "fluent Comparator"比較器, 提供多關鍵字排序。
  5. Throwable類: 簡化了異常檢查和錯誤傳播。多線程

  二.  集合類:集合類庫是 Guava 對 JDK 集合類的擴展, 這是 Guava 項目最完善和爲人所知的部分。併發

  1. Immutable collections(不變的集合): 防護性編程, 不可修改的集合,而且提升了效率。
  2. New collection types(新集合類型):JDK collections 沒有的一些集合類型,主要有:multisets,multimaps,tables, bidirectional maps等等
  3. Powerful collection utilities(強大的集合工具類): java.util.Collections 中未包含的經常使用操做工具類
  4. Extension utilities(擴展工具類): 給 Collection 對象添加一個裝飾器? 實現迭代器? 咱們能夠更容易使用這些方法。異步

  三.  緩存: 本地緩存,能夠很方便的操做緩存對象,而且支持各類緩存失效行爲模式。函數式編程

  四.  Functional idioms(函數式): 簡潔, Guava實現了Java的函數式編程,能夠顯著簡化代碼。

  五. Concurrency(併發):強大,簡單的抽象,讓咱們更容易實現簡單正確的併發性代碼。

  1. ListenableFuture(可監聽的Future): Futures,用於異步完成的回調。
  2. Service: 控制事件的啓動和關閉,爲你管理複雜的狀態邏輯。

  六. Strings: 一個很是很是有用的字符串工具類: 提供 splitting,joining, padding 等操做。

  七. Primitives: 擴展 JDK 中未提供的對原生類型(如int、char等)的操做, 包括某些類型的無符號的變量。

  八. Ranges: Guava 一個強大的 API,提供 Comparable 類型的範圍處理, 包括連續和離散的狀況。

  九. I/O: 簡化 I/O 操做, 特別是對 I/O 流和文件的操做, for Java 5 and 6.

  十. Hashing: 提供比 Object.hashCode() 更復雜的 hash 方法, 提供 Bloom filters.

  十一. EventBus: 基於發佈-訂閱模式的組件通訊,可是不須要明確地註冊在委託對象中。

  十二. Math: 優化的 math 工具類,通過完整測試。

  十三. Reflection: Guava 的 Java 反射機制工具類。

相關文章
相關標籤/搜索