Google Guava官方教程(中文版)

标签: google guava 官方 | 发表时间:2014-10-24 15:48 | 作者:fantasy
出处:http://www.iteye.com

原文链接   译文链接  译者: 沈义扬, 罗立树,何一昕, 武祖   校对:方腾飞

引言

Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。

查阅Javadoc并不一定是学习这些库最有效的方式。在此,我们希望通过此文档为Guava中最流行和最强大的功能,提供更具可读性和解释性的说明。

 

译文格式说明

  • Guava中的类被首次引用时,都会链接到Guava的API文档。如: Optional<T>
  • Guava和JDK中的方法被引用时,一般都会链接到Guava或JDK的API文档,一些人所共知的JDK方法除外。如: Optional.of(T) , Map.get(key)。
  • 译者对文档的额外说明以斜体显示,并且以“ 译者注 ”开始。

目录

1. 基本工具 [Basic utilities]

让使用Java语言变得更舒适

1.1  使用和避免null:null是模棱两可的,会引起令人困惑的错误,有些时候它让人很不舒服。很多Guava工具类用快速失败拒绝null值,而不是盲目地接受

1.2  前置条件: 让方法中的条件检查更简单

1.3  常见Object方法: 简化Object方法实现,如hashCode()和toString()

1.4  排序: Guava强大的”流畅风格比较器”

1.5  Throwables:简化了异常和错误的传播与检查

2. 集合[Collections]

Guava对JDK集合的扩展,这是Guava最成熟和为人所知的部分

2.1  不可变集合: 用不变的集合进行防御性编程和性能提升。

2.2  新集合类型: multisets, multimaps, tables, bidirectional maps等

2.3  强大的集合工具类: 提供java.util.Collections中没有的集合工具

2.4  扩展工具类:让实现和扩展集合类变得更容易,比如创建 Collection的装饰器,或实现迭代器

3.  缓存[Caches]

Guava Cache:本地缓存实现,支持多种缓存过期策略

4.  函数式风格[Functional idioms]

Guava的函数式支持可以显著简化代码,但请谨慎使用它

5. 并发[Concurrency]

强大而简单的抽象,让编写正确的并发代码更简单

5.1  ListenableFuture:完成后触发回调的Future

5.2  Service框架:抽象可开启和关闭的服务,帮助你维护服务的状态逻辑

6.  字符串处理[Strings]

非常有用的字符串工具,包括分割、连接、填充等操作

7.  原生类型[Primitives]

扩展 JDK 未提供的原生类型(如int、char)操作, 包括某些类型的无符号形式

8.  区间[Ranges]

可比较类型的区间API,包括连续和离散类型

9.  I/O

简化I/O尤其是I/O流和文件的操作,针对Java5和6版本

10.  散列[Hash]

提供比 Object.hashCode()更复杂的散列实现,并提供布鲁姆过滤器的实现

11.  事件总线[EventBus]

发布-订阅模式的组件通信,但组件不需要显式地注册到其他组件中

12.  数学运算[Math]

优化的、充分测试的数学工具类

13.  反射[Reflection]

Guava 的 Java 反射机制工具类



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [google guava 官方] 推荐:

Google Guava官方教程(中文版)

- - Java - 编程语言 - ITeye博客
原文链接   译文链接  译者: 沈义扬, 罗立树,何一昕, 武祖   校对:方腾飞. Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等.

Google Guava Collections 使用介绍

- 半兽人 - IBM developerWorks 中国 : Java technology : Articles,Tutorials
Google Guava Collections 是一个对 Java Collections Framework 增强和扩展的一个开源项目. 由于它高质量 API 的实现和对 JDK5 特性的充分利用,使得其在 Java 社区受到很高评价. 笔者主要介绍它的基本用法和功能特性.

Google Guava v11 Collections示例

- - 龙浩的blog
Guava 中文是石榴的意思,该项目是 Google 的一个开源项目,包含许多 Google 核心的 Java 常用库. 这里先介绍一下最常用的com.google.common.collect包中的最常用的一些API,仅仅讨论一下API的使用方法,没有讨论到实现细节.      1:Collections的构造方法.

[Google Guava] 排序: Guava强大的”流畅风格比较器”

- - 并发编程网 - ifeve.com
原文链接 译者: 沈义扬. 排序器[Ordering]是Guava流畅风格比较器[Comparator]的实现,它可以用来为构建复杂的比较器,以完成集合排序的功能. 从实现上说,Ordering实例就是一个特殊的Comparator实例. Ordering把很多基于Comparator的静态方法(如Collections.max)包装为自己的实例方法(非静态方法),并且提供了链式调用方法,来定制和增强现有的比较器.

Guava cache

- - 孟飞阳的博客
Guava Cache是一个全内存的本地缓存实现,它提供了线程安全的实现机制. 整体上来说Guava cache 是本地缓存的不二之选,简单易用,性能好.    Guava Cache有两种创建方式:.   通过这两种方法创建的cache,和通常用map来缓存的做法比,不同在于,这两种方法都实现了一种逻辑——从缓存中取key X的值,如果该值已经缓存过了,则返回缓存中的值,如果没有缓存过,可以通过某个方法来获取这个值.

Google Guava的5个鲜为人知的特性

- - Java译站
Google Guava有哪些比较冷门但却又实用的特性呢. 它是最流行的开源库之一,你应该听过它的大名,它诞生的地方正是人们举办真正的魁地奇比赛的地方(起码 实习期内是这样的). 它虽然不是来自哈利波特中的霍格沃兹学校,但却有着自己的专属魔力:Google Guava库包含着许多诞生于Google的核心Java库,这些都是公开发布后在生产环境经历过了各种检验的.

Java Cache系列之Guava Cache

- - BlogJava-首页技术区
然而作为工具库中的一部分,我们自然不能期待Guava对Cache有比较完善的实现. 因而Guava中的Cache只能用于一些把Cache作为一种辅助设计的项目或者在项目的前期为了实现简单而引入. 在Guava CacheBuilder的注释中给定Guava Cache以下的需求:. 对于这样的需求,如果要我们自己来实现,我们应该怎么设计.

官方 Google Maps 登錄 iOS

- - UNWIRE.HK 流動科技生活
升級 iOS 6 後發覺 Apple Maps 不好用. 今天起可以安裝 Google 官方的 Google Maps App 決定這個問題了,以下是下載連結 :. *** 想更緊貼更多著數資訊的話,請讚好 加入我們,每天就會收到最新的免費資訊了,一定不會錯過 ***.

官方 Chrome 扩展 Google Translate for Google+

- Qian - 谷奥——探寻谷歌的奥秘
其实这是个挺无聊也挺没技术含量的Chrome扩展,不过因为是Google官方的所以还是捎带手说一下. Google员工Josh Estelle做了这个Google Translate for Google+扩展,安装之后即可在每个Google+信息流里看到一个新的Translate按钮,点击即可将信息流或评论翻译成Google Translate所支持的任何语言.

[转][转]Redis、Memcached、Guava、Ehcache中的算法

- - heiyeluren的blog(黑夜路人的开源世界)
缓存那些事,一是内存爆了要用LRU(最近最少使用)、LFU(最少访问次数)、FIFO的算法清理一些;二是设置了超时时间的键过期便要删除,用主动或惰性的方法. 今天看 Redis3.0的发行通告里说,LRU算法大幅提升了,就翻开源码来八卦一下,结果哭笑不得,这旧版的"近似LRU"算法,实在太简单,太偷懒,太Redis了.