开源界有个不成规矩的规矩,那就是凡是某大型公司开源出来的干货,都会以一种动物、一种植物或者一个物件为名,比如zookeeper、tomcat、spark、tomcat、cat、pig、dragon......
命名
那么本文要说的Guava呢,本名是个热带美洲水果「番石榴」,本来在国内没什么名声,估计也不怎么好吃吧,,但Google用它给自己的开源Java类库命名后,在技术圈就名声大噪了。
功能
Guava本身就是个工具类,工具类呢,就是封装平常用的方法,不需要你重复造轮子,节省开发人员时间,提高工作效率。
谷歌作为大公司,当然会从成千上万的项目和工作中提取出很多高效率的方法出来,方便大家统一使用,而且也是为了造福大家,所以就诞生了Guava这个干货利器。
本文我就主要说一下如何在项目中集成和使用Guava,如果大家感兴趣后续我会逐一详细讲解Guava包含的各个核心类库的原理和使用方法。
Guava是一种基于开源的Java库,其中包含谷歌正在由他们很多项目使用的很多核心库。这个库是为了方便编码,并减少编码错误。这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的使用方法。
Guava的突出优势:
- 高效设计良好的API,被Google的开发者设计,实现和使用
- 遵循高效的java语法实践
- 使代码更刻度,简洁,简单
- 节约时间,资源,提高生产力
使用
maven仓库中最新的版本是28,所以在项目中引入maven依赖时可以用以下配置:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.0-jre</version>
<!-- or, for Android: -->
<version>28.0-android</version>
</dependency>
接着就可以在项目中使用Guava提供的核心类库了,这些核心类库都是google开源出来的精品,每一个模块要想理解其原理和使用都要好好阅读wiki,深入学习,每一个模块都能写出一篇文章来。
不如Guava支持的集合类型,就是基于JDK做了很多自己的封装和扩展,实现了很多简单方便但却实用的集合类型,比如MultiMap(多个键映射到同一个值),BiMap(双向Map),Table(双键的Map,和sql中的联合主键有点像),下图就是详细列出了JDK和Guava中集合的对应关系。
那么大家对于Guava哪一个核心类库比较感兴趣呢?欢迎大家投票,留言讨论,后续我会根据投票结果来详细讲解下大家感兴趣的类库。