Google Guava教程

Google Guava官方教程(中文版)

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

引言

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 反射机制工具类

原创文章,转载请注明: 转载自并发编程网 – ifeve.com

本文链接地址: Google Guava官方教程(中文版)

文章的脚注信息由WordPress的wp-posturl插件自动生成

时间: 2024-10-10 22:12:41

Google Guava教程的相关文章

Guava 教程1-使用 Google Collections,Guava,static imports 编写漂亮代码

文章转载自:http://my.oschina.net/leejun2005/blog/172328 目录:[ - ] 1-使用 GOOGLE COLLECTIONS,GUAVA,STATIC IMPORTS 编写漂亮代码 1.Google Collections一览 2.操作lists和maps 3.静态导入和Eclipse模板 4.Guava走马观花 2-深入探索 GOOGLE GUAVA 库 1.The Guava CharMatcher 2.Joiner and Splitter 3.W

Google Guava入门教程

以下资料整理自网络 一.Google Guava入门介绍 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives support] .并发库 [concurrency libraries] .通用注解 [common annotations] .字符串处理 [string processing] .I/O 等等. 所有这些工具每天都在被Google的工程师应用在产品

Google Guava Collections

最近使用到了Google guava Collections工具类,发现果真很方便,代码也整洁了很多. Guava api 1. Immutable Collections: 真正的不可修改的集合

Guava学习笔记:Google Guava 类库简介

> Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦.下面我们就开启优雅Java编程学习之旅! 项目相关信息: 官方首页:http://code.googl

google guava cache

老规矩,有些知识很容易忘记啊,还是记录一下咯. google guava cache中,有很多参数. 1.expireAfterAccess(n , timeunit)   表示cache中管理的key如果在n(s,m,h,d)时间范围内没有被使用,则被cache驱逐. 2.maximumSize(n)   表示可以缓存的最大数目.没有到达最大数目时, 即开始驱逐部门缓存数据. 3.removalListener     实现RemovalListener接口onRemoval方法.可以记录缓存

Google Guava简介

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

(翻译)Google Guava Cache

翻译自Google Guava Cache This Post is a continuation of my series on Google Guava, this time covering Guava Cache. Guava Cache offers more flexibility and power than either a HashMap or ConcurrentHashMap, but is not as heavy as using EHCache or Memcache

Google Guava入门(一)

Guava作为Java编程的助手,可以提升开发效率,对Guava设计思想的学习则极大的有益于今后的编程之路.故在此对<Getting Started with Google Guava>一书进行翻译并实战,未予审校,错误之处请大家不吝赐教. 全文目录如下: 1.????入门????2 1.1. Guava简介????2 1.2. Guava使用实例????2 1.3. 本书是关于什么的?????3 1.4. Guava安装????3 1.5. 通过Maven或者Gradle管理Guava???

Google Guava 学习记录《一》

Guava 在Google code 上地址:https://code.google.com/p/guava-libraries/ 首先为什么要学习这个库,在实习的时候看大神的代码很简洁,很多地方将一些琐碎凌乱的代码轻松解决,所以抱着试试看的心态搞搞吧. 第一部分:basic utilities null 问题的处理 理解Optional<T> ,首先要理解为什么出现这个.在Java中null其实代表的意思在不同的content下是不同的,比如一个值可能是null或者是真的不存在.在Map.g