Google Guava入門(一)

Guava做爲Java編程的助手,能夠提高開發效率,對Guava設計思想的學習則極大的有益於從此的編程之路。故在此對《Getting Started with Google Guava》一書進行翻譯並實戰,未予審校,錯誤之處請你們不吝賜教。 html

全文目錄以下: 前端

1.    入門    2 java

1.1. Guava簡介    2 git

1.2. Guava使用實例    2 程序員

1.3. 本書是關於什麼的?    3 github

1.4. Guava安裝    3 spring

1.5. 經過Maven或者Gradle管理Guava    3 apache

1.6. 獲取書中源碼    4 編程

1.7. 總結    5 設計模式

2.    Guava基本工具    5

2.1. Joiner    5

2.2. 回顧    7

2.3. Splitter    7

2.4. 回顧    9

2.5. Guava中使用字符串    9

2.6. Charsets    9

2.7. Strings    10

2.8. CharMatcher    10

2.9. Preconditions    12

2.10. 對象工具    13

2.11. 總結    15

3.    Guava函數式編程    15

 

Google Guava入門

前言

目前,在軟件行業內,Java仍然是最主要的開發語言之一,受歡迎程度依然保持着。Java的一個優點是其開發人員能夠獲取豐富的第三方庫,幫助開發人員更加高效的編碼。Guava就是一個很棒的庫,在開發活動中給予開發者極大的提高。此外,隨着咱們開始使用Guava,咱們將得到不少靈感,用於本身代碼的實現。

本書覆蓋的內容

第一章,介紹Guava,此外給出使用Guava的例子;

第二章,基本的Guava工具,包括使用字符串和對象的基本功能;

第三章,Guava函數式變成,介紹Guava提供的函數式編程特性;

第四章,使用集合,包括加強現有Java集合功能的工具和類;

第五章,併發,展現瞭如何經過使用Guava的併發抽象化幫助咱們更好的編寫併發代碼;

第六章,Guava緩存,介紹Guava緩存,包括一個自加載緩存;

第七章,EventBus類,經過它完成基於事件的編程;

第八章,使用文件類,展現了Guava如何極大地簡化文件的讀寫;

第九章,零碎工做覆蓋了規避null的Optional類,哈希函數,BloomFilter數據結構。

 

入門

本章涵蓋了一些Guava的歷史,而後咱們會寫一個例子,說明爲何你須要一個成熟的庫而不是從頭開始本身寫。咱們會說明在哪能夠得到Guava庫,如何安裝,最好,如何啓動本書所帶的源碼。

Guava簡介

什麼是GuavaGoogle Guava源於2007年的"Google Collections Library",提供使用Java集合的工具,已經進化爲Java開發者的基礎工具箱。Guava擁有對不少人有用的一些東西。如與字符串、集合、併發、I/O和反射的協做的類。Function接口提供了Java函數式編程的能力,而且極大地簡化了代碼。Suppier接口幫助creational pattern23種設計模式之一)。可是,Guava不只僅是從Java中提取的一些樣板的抽象化,或者一些咱們都認爲在Java中自帶的便利方法。Guava涉及編寫良好的代碼,促使代碼更有彈性、更加簡潔。全部建議不只僅是使用Guava,更要讀一下它的源碼,學習運行的原理。而後將一樣的準則用於本身所寫的代碼之中。最後,祝你們學的愉快!

Guava使用實例

做爲軟件開發者,咱們認爲能夠作全部的事情。咱們本能地但願寫屬於本身的庫,這些庫用於處理咱們平常的事務。固然,咱們認爲本身寫的代碼是刀槍不入的,而且咱們瞭解爲什麼寫單元測試,而且可以經過。這裏,我有些很差的消息告訴你們,咱們並無本身想象的那麼優秀。實際上呢,這與聰明程度無關,更多的是咱們所寫的代碼不是不只僅須要經過單元測試,還要被不少開發者所使用並在代碼中將他們的需求衡量進來。Guava被用於數以百計的生產環境應用,截止20127月,在guava-tests包裏有驚人的28600個獨立單元測試。歸根結底其實使用像Guava這樣的庫遠遠好於本身寫。此外,據Larry WallPerl的做者)所言,軟件工程師最好的品質之一就是"懶惰",不是不想工做的意思,而是在能夠良好運行的狀況下不去從新改造車輪。真正優秀的程序員在開始本身寫程序時會尋找已有的庫來解決遇到的問題。

本書是關於什麼的?

本書的目標是當你coding時老是會將它放在"手"邊。當遇到須要使用Guava中的內容解決的情況或者Guava可能擁有解決你遇到的問題的方法時,咱們指望本書可以給你答案。若是美譽哦,最少可以指引你到對的方向上。本書涵蓋的全部話題都有源碼。多數時候,源碼是單元測試的形式。有時提出的一些有意義的例子多是不一樣的形式,單元測試能夠快速地展現代碼工做的原理。而且隨着Guava發佈計劃趨於頻繁,單元測試是無價的,若是內容與以前的版本相比有變化,運行這些測試給你快速的指示。然而覆蓋全部Guava庫全部的部分幾乎不可能,咱們儘量使本書全面而且覆蓋典型的程序員認爲有用的內容。最後咱們但願本書易於閱讀、提供樂趣、實用性強。

Guava安裝

開始使用Guava以前,須要安裝Java 1.6或更高的版本。本書使用的Guava是版本14,是撰寫時最新的版本。下面是開始Guava的執行步驟:

  1. Guavahttps://code.google.com/p/guava-libraries/ 上能夠下載到guava-14.jar
  2. 若是使用GWTGoogle Web ToolkitJava編寫AJAX前端)而且但願在代碼中應用Guava,能夠下載GWT兼容版本guava-gwt-14.jar。由於標準版本不會經過GWT編譯器編譯成JavaScript
  3. JAR文件下載以後,做爲第三方庫添加進IDEIntelliJ, NetBeans, Eclipse)。若是使用的是文本編輯器(Sublime Text2或者TextMate),添加JAR文件路徑進classpath
  1. API文檔位於http://docs.guava-libraries.googlecode.com/git-history/release/javadoc/index.html

如今準備工做就作好了,能夠開始使用Guava了。

經過Maven或者Gradle管理Guava

可使用Maven或者Gradle這樣的構建工具來使用Guava

Maven項目中使用Guava,在pom.xml中添加以下的依賴:

<dependency>

    <groupId>com.google.guava</groupId>

    <artifactId>guava</artifactId>

    <version>14.0</version>

</dependency>

若是使用的是Gradle,首先添加Maven中心倉庫(若是尚未添加的話),即在build.gradle文件中添加以下內容:

repositories {

mavenCentral()

}

而後,在build.gradle文件添加如下的依賴節點:

dependencies {

compile group: 'com.google.guava' name: 'guava' version: '14.0'

}

獲取更多關於Maven的信息,參考http://maven.apache.org/,Gradle信息請參考http://www.gradle.org/。

十分有必要提到,Guava僅有一個依賴,JSR-305。

【JSR-305是Java語言中定義用於檢測缺陷的註解的規範。更多內容參考http://jcp.org/en/jsr/detail?id=305。】

若是你不打算直接使用JSR-305JAR,能夠不用在依賴中包含。若是打算使用JSR-305,必須顯示地聲明這一依賴,由於它不會自動地被拉進來。若是你打算在Scala中使用,必須包含JSR-305JAR文件。Java編譯器在編譯時不須要這個庫包含註解,可是Scala編譯器須要。未來這一現象可能會變化,截至目前,若是打算在Scala中使用Guava,必須在classpath中包含JSR-305JAR文件。

獲取書中源碼

書中源碼以Java工程進行組織,符合Gradle或者Maven的結構。以前提到過,大部分源碼是單元測試的形式。若是沒有安裝Gradle或者Maven,強烈建議安裝其中一個,運行單元測試會變得輕鬆,拉取Guava和工程所需的一切依賴。

如下是獲取和使用源碼的步驟:

  1. 下載源碼http://www.packtpub.com/support
  2. 解壓縮;
  3. 進入guava-book-code文件夾下;
  4. 若是安裝了Gradle,運行gradle install
  5. 若是安裝了Maven,運行mvn install

上述步驟會安裝源碼所需的Guava和依賴。若是一切順利,你會看到一大波單元測試被執行並經過。強烈建議使用以前提到的構建工具。這樣在修改Guava版本和運行書中測試的時候會很輕鬆,看看是否有變化。若是沒有安裝構建工具,你須要下載一下的依賴才能運行書中列出的例子。

  • Lucence v4.2: http://lucene.apache.org/
  • Spring Java Version 3.2: http://www.springsource.org/springframework
  • H2(embedded database) v1.3.170: http://www.h2database.com/html/main.html
  • JUnit v4.11: https://github.com/junit-team/junit/wiki/Downloadand-Install

書中源碼在MacBook Pro v10.7.5Java 7Gradle構建系統,IntelliJ IDE環境下完成。

總結

到目前爲止,咱們重溫了一下Guava簡短的歷史和它如何提升代碼質量、簡化工做。咱們認識到使用一個測試充分的庫而不是本身從頭開發的重要性。最後,咱們提到從哪得到Guava,如何安裝,如何下載源碼。下一章,咱們開始探索Guavacom.google.common.base包中的工具類和com.google.common.collect包的ComparisonChain類。

相關文章
相關標籤/搜索