1. 程式人生 > >Google Guava 類庫簡介

Google Guava 類庫簡介

math dir 多好 spa 裝飾 ava collect mon 集合接口

  Guava 是一個 Google開發的 基於java的類庫集合的擴展項目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 這些高質量的 API 可以使你的JAVA代碼更加優雅,更加簡潔,讓你工作更加輕松愉悅。下面我們就簡單的介紹一下Guava的大致的功能!

  Guava項目托管在github上,可以使用sudo git clone https://github.com/google/guava.git下載Guava源碼,從源碼可以看到,Guava主要有下面的幾個包:
  annotations:普通註解類型

  base:基本工具類庫和接口

  Cache:緩存工具包,非常簡單易用且功能強大的JVM內緩存

  collect:帶泛型的集合接口擴展和實現,以及工具類,這裏你會發現很多好玩的集合

  eventbus:發布訂閱風格的事件總線

  hash: 哈希工具包

  io:IO工具包

  math:數學計算工具包

  net:網絡工具包

  primitives:八種原始類型和無符號類型的靜態工具包

  reflect:反射工具包

  concurrent:並發編程工具包

  escape:轉義工具

  graph:處理基於圖的數據結構

  HTML:Html字符串轉義

  XML:xml字符串轉義

Guava的使用

  基礎工具

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

  集合類

  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的函數式編程,可以顯著簡化代碼。

  並發

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

  String處理

  一個非常非常有用的字符串工具類: 提供 splitting,joining, padding 等操作。

  Primitives

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

  Ranges

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

  IO

  簡化 I/O 操作, 特別是對 I/O 流和文件的操作

  HASH

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

  EventBus

  基於發布-訂閱模式的組件通信,但是不需要明確地註冊在委托對象中

  Math

  優化的 math 工具類

  Reflection

  Guava 的 Java 反射機制工具類

  

Google Guava 類庫簡介