1. 程式人生 > >使用Google Guava來編寫優雅的程式碼一Guava簡介

使用Google Guava來編寫優雅的程式碼一Guava簡介

以往我們在使用工具包的時候首先想到是著名的Apache的Commons系列,今天我要介紹的是同樣出色,並且目前發展比Apache Commons系列更為迅速的Google Guava庫。

Google Guava庫是一個非常優秀的包含很多Java工具類集的庫,廣泛使用在Google公司內部,因此它可以被使用到幾乎所有的Java專案中。Google Guava庫最初發布在2007年,經過幾年的更新發展目前其最新的版本為14.0-rc3。如果你之前有使用過Google collections庫,那麼請注意該庫也已經被合併到Guava中了。

從上面的簡介中我們可以知道Guava本身是Google內部的核心Java基礎庫,其涵蓋的內容包含集合、快取、基礎型別、併發處理、常用註解、字串處理、I/O、網路、數學運算、反射、範圍(Range)等方面。

為什麼要使用Guava?

我相信很多人已經使用了很長時間的Apache commons系列庫了,那麼為什麼還要推薦Guava呢?

關於這個問題的討論很多,這裡將Stackoverflow上面的一個關於這個問題的討論總結寫到此處。

compare2apache

對於我個人而言,Guava的開發活躍度和良好的質量保證(從上面的Stackoverflow的討論來看,google的java開發主管帶領的小組負責該庫的主要維護工作)是我更願意轉而使用Guava的的原因之一。Guava幾年發展下來各界發表的各類文章和其自身良好的文件風格也極大的幫助了該庫的傳播使用。

Guava相關文件和資源

首先推薦訪問Guava的知識庫API文件

Guava官方網站也給出非常有用的學習資源的地址:

其中最後一項由社群開發者整理的Guava資料最為全面,其根據時間順序整理了Guava相關的文章、教程和教學錄影等內容,是非常不錯的學習資料。

使用Guava

如果你是使用Maven作為專案管理和整合工具的話,那麼只需要拷貝下面一段程式碼到專案的pom.xml中即可。

<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>14.0-rc3</version>
</dependency>

Guava官方網站不再提供其lib包的下載,如果需要下載可以前往maven的中央庫進行搜尋並選擇進行下載,當前的最新版本為14.0-rc3。

本系列文章希望能逐步將Guava相關的API在實際開發中的使用方法進行相對詳細的介紹,因此本系列的更新可能並不會那麼迅速。如果你現在就需要了解和掌握Guava的相關知識和技術,可以先檢視前文所提到的學習資源。

相關推薦

使用Google Guava編寫優雅程式碼Guava簡介

以往我們在使用工具包的時候首先想到是著名的Apache的Commons系列,今天我要介紹的是同樣出色,並且目前發展比Apache Commons系列更為迅速的Google Guava庫。 Google Guava庫是一個非常優秀的包含很多Java工具類集的庫,廣泛使用在G

(java開源框架)使用Google Guava編寫優雅程式碼Guava簡介

以往我們在使用工具包的時候首先想到是著名的Apache的Commons系列,今天我要介紹的是同樣出色,並且目前發展比Apache Commons系列更為迅速的Google Guava庫。 Google Guava庫是一個非常優秀的包含很多Java工具類集的庫,廣泛使用

如何在微信小程式中使用sass編寫wxss程式碼

之前抽空了解了一下sass這門css擴充套件語言,感覺很nice,不過由於我主要是做小程式的,所以我也花了些時間研究如何在微信小程式中使用sass來編寫微信小程式的wxss。下面就介紹一下如何在微信小程式中使用sass來編寫wxss程式碼。 第一種,使用編輯器進行編譯,例如webstrom

編寫優雅程式碼,從挖掉噁心的if/else 開始

背景   長話短說, 作為開發人員經常需要根據條件靈活查詢資料庫,不管你是用rawsql 還是EFCore, 以下類似虛擬碼大家都可能遇到: /// <summary> /// 靈活查詢 能耗資料表 (rawsql) /// </

使用APICloud編寫優雅的HTML5程式碼》:下拉重新整理、上拉載入更多

摘要: 發​現​A​P​I​C​l​o​u​d​倡​導​符​合​C​M​D​以​及​A​M​D​規​範​的​J​S​編​碼​標​準​,​提​供​基​於​H​T​M​L​5​的​跨​平​臺​A​p​p​編​譯​,​並​開​放​大​量​的​端​A​P​I​和​雲​A

利用guava實現本地的cache緩存

end 時間 ini pan ogl 代碼 ret print get guava是谷歌提供的工具類,功能強大,舉個例子,我我想把數據存到本地,該咋辦?我們想到的只有是全局的Map和session中。如果我們想實現這個容器的大小呢?時間呢?不好搞吧。 guava就有這樣的

Android Annotation-讓你的程式碼和設計更加優雅

引子 最近我寫了一篇關於元件化的開源框架原始碼分析的文章(傳送門在下面兒)。那麼現在元件化小有名氣的JIMU框架,也是我下一個要給大家分享的原始碼分析文章。但因為其中涉及到了很多Java Annotation相關的知識。所以不得不在這裡,先安利一下本篇,這也是本篇的由來。 優秀框架原始碼分析系列(一)讓解

python3教程(八):使用文字編寫程式碼

我們之前一隻在IDLE環境裡程式設計,IDLE裡我們可以看到每一行都直接返回結果,這樣方便我們在前期執行程式碼,發現BUG源頭。 但是,IDLE也有很不好的地方,比如:寫的程式碼不能儲存,IDLE對於某些模組可能支援不好等等,這時候我們就需要使用文字來寫程式碼。 python會自帶一個文

利用Lombok編寫優雅的spring依賴注入程式碼,去掉繁人的@Autowired

大家平時使用spring依賴注入,都是怎麼寫的? @Service public class OrderService { @Autowired private UserService userService; } 是不是很熟悉的感覺?但是呢 如果你用IDEA的

基於springboot+bootstrap+mysql+redis搭建套完整的許可權架構【五】【編寫基礎程式碼快速生成工具】

 首先我們在我們的com.csdn包底下我們新建一個codeUtil包如下所示: 首先我們新建一個我們的列的模型(ColumnModel.java)如下: /**  * 列模型  */ public class ColumnModel {     private bool

如何用 PEP 8 編寫優雅的 Python 程式碼

教你怎麼編寫符合規範的Python程式碼,文章較長,請準備好咖啡 原文地址:How to Write Beautiful Python Code With PEP 8 作者:Jasmine Finer 翻譯:howie6879 目錄如下: Why We Nee

優雅程式設計之Guava瓜娃工具類的7點整理學習分享(三十九)

開心一笑 【面試官:“熟悉哪種語言”。 應聘者:“JAVA”。 面試官:“知道什麼叫類麼”。 應聘者:“我這人實在,工作努力,不知道什麼叫累”。 面試官:“知道什麼是包?”。 應聘者:“我這人實在 平常不帶包 也不用公司準備了”。 面試官:“知道

使用APICloud編寫優雅的HTML5程式碼《二》:ajax、檔案上傳

摘要: 對於ajax這個API而言,它實際上是有非常多的引數可供開發者選擇的,以此滿足各種特殊的需求,包括:url、method、cache、timeout、dataType、charset、headers、report、returnAll、data等等,使用者

RateLimit--使用guava做介面限流

一、問題描述     某天A君突然發現自己的介面請求量突然漲到之前的10倍,沒多久該介面幾乎不可使用,並引發連鎖反應導致整個系統崩潰。如何應對這種情況呢?生活給了我們答案:比如老式電閘都安裝了保險絲,一旦有人使用超大功率的裝置,保險絲就會燒斷以保護各個電器不被強

visual studio編寫C#程式碼時“未能從程式集.....中載入型別”和“找不到方法”的種可能的解決辦法

編譯前報錯:$exception    {"未能從程式集“XSW.MySQLDAL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”中載入型別“XSW.MySQLDAL.EnterpriseLibraryProd

使用CMake編寫平臺相關的檢查 -- use google translate

CMake的:如何編寫平臺檢查如果你想編寫軟體編制,在不同作業系統上執行,你必須對不同平臺的特殊性質的照顧。在不同的作業系統有細微的差別,例如在FreeBSD你不應該使用malloc.h,而這是完全可以在Linux上使用它。處理這些差異通常是通過提供一個頭檔案,它包含了定義,

golang如何優雅編寫事務程式碼

[toc] # 前言 ![](https://img2020.cnblogs.com/blog/662544/202005/662544-20200525173257663-851975192.png) 新手程式設計師大概有如下特點 1. if巢狀經常超過3層、經常出現重複程式碼、單個函式程式碼特別長。

通過traceur.js編寫ES6

char 編寫 scrip charset rac href mpat option script 通過traceur.js來編寫ES6 <!DOCTYPE html><html><head> <meta charset="u

【eclipse jar包】在編寫java程式碼時,為方便程式設計,常常會引用別人已經實現的方法,通常會封裝成jar包,我們在編寫時,只需引入到Eclipse中即可。

Eclipse中匯入外部jar包 在編寫java程式碼時,為方便程式設計,常常會引用別人已經實現的方法,通常會封裝成jar包,我們在編寫時,只需引入到Eclipse中即可。 工具/原料 Eclipse

【JEECG-Mybatis版本】springmvc+mybatis+程式碼生成器(程式碼鍵生成)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!