Google Guava 類庫簡介

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

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

  base:基本工具類庫和接口github

  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 反射機制工具類

相關文章
相關標籤/搜索