以往我们在使用工具包的时候首先想到是著名的Apache的Commons系列,今天我要介绍的是同样出色,并且目前发展比Apache Commons系列更为迅速的Google Guava库。
Google Guava库是一个非常优秀的包含很多Java工具类集的库,广泛使用在Google公司内部,因此它可以被使用到几乎所有的Java项目中。Google Guava库最初发布在2007年,经过几年的更新发展目前其最新的版本为14.0-rc3。如果你之前有使用过Google collections库,那么请注意该库也已经被合并到Guava中了。
下面Guava项目网站的一段简介
The Guava project contains several of Google’s core libraries that we rely on in our Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth. Each of these tools really do get used every day by Googlers, in production services.
从上面的简介中我们可以知道Guava本身是Google内部的核心Java基础库,其涵盖的内容包含集合、缓存、基础类型、并发处理、常用注解、字符串处理、I/O、网络、数学运算、反射、范围(Range)等方面。
为什么要使用Guava?
我相信很多人已经使用了很长时间的Apache commons系列库了,那么为什么还要推荐Guava呢?
关于这个问题的讨论很多,这里将Stackoverflow上面的一个关于这个问题的讨论总结写到此处。
对于我个人而言,Guava的开发活跃度和良好的质量保证(从上面的Stackoverflow的讨论来看,google的java开发主管带领的小组负责该库的主要维护工作)是我更愿意转而使用Guava的的原因之一。Guava几年发展下来各界发表的各类文章和其自身良好的文档风格也极大的帮助了该库的传播使用。
Guava相关文档和资源
Guava官方网站也给出非常有用的学习资源的地址:
-
A nice collection of other helpful links
其中最后一项由社区开发者整理的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 Overview Slide查看更多关于Guava的简介。
本系列文章希望能逐步将Guava相关的API在实际开发中的使用方法进行相对详细的介绍,因此本系列的更新可能并不会那么迅速。如果你现在就需要了解和掌握Guava的相关知识和技术,可以先查看前文所提到的学习资源。
下面是推荐的同类的系列文摘地址:
Codemunchies’ 4 part series on Google Collections and Guava:
该系列文章已经被网友翻译为中文,可以前往oschina.net查看:
A five-part, quite extensive tutorial from Sezin Karli:
Guava项目是Google Java工程的核心基础类库,主要包括:集合,缓存,原始类型扩展,并发,注解,字符串处理,IO等等。谷人希不愧是人类的希望,Guava不大五脏俱全,里面有很多令人赞叹的代码,读后有种原来Java也可以这么优雅的感觉。现在我做项目Apache的一些包可以不要,但是Guava和Junit必不可少。
Above All,建立maven java工程,将Guava包和Junit包引入就可以玩单元测试了。
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>13.0</version>
</dependency>
ps:对需要的maven dependency jar建议从第三方站点Maven Repository查找,maven官方主干仓库提供的The Central Repository Search Engine实在不好用。(给自己点压力,去年or前年我在公司写过maven培训的ppt,但是某司思想过于封闭落后,拿不出来,有空还是得在家重写一下,以给需要的人。)
-
官方下载:http://code.google.com/p/guava-libraries/downloads/list
-
官方文档:http://docs.guava-libraries.googlecode.com/git/javadoc/index.html
主要包括如下子包:
-
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:多线程工具包。
转载请注明:学时网 » 使用Google Guava来编写优雅的代码一Guava简介