Guava文档翻译之 Guava简介
用户指南 User Guide
Guava项目包括了一些Google的核心库,是我们在基于Java的项目中所依赖的,这些库包括:集合,缓存,对基本类型的支持,并发库,通用的注解,字符串处理,I/O,等等。这些工具的每一个真的都在被Google每天使用着,而且是在生产系统中。
但是只是在Javadoc中寻觅不是学会怎么使用一个库的最有效的方法。在此,我们试图对Guava的一些最流行和强大的特性做出良好的阐述。
这个wiki还没有完工,它的有些部分仍然在构建中。
- 基础工具:让使用Java这个语言更令人愉快
- 使用以及避免null(Using and avoiding null): null可能会令人困惑,可以造成令人迷惑的错误,当然有时候就是看着不舒服。一些Guava的工具拒绝null,并且在使用null时快速失败,而不是盲目地接收null
- 前置条件(Preconditions):使得为你的方法测试前置条件更容易
- 对象通用的方法(Common object methods):使得实现Object的方法更简单,比如hashCode()以及toString()
- 顺序(Ordering):提供Guava强大的"fluent Comparator"类(译注:就是以fluent代码定义对象的Ordering,详见链接过去的文档)
- 异常(Throwables):简化了异常和错误的传播和检验
- 集合:Guava对于JDK集合系统的扩展。下面是Guava的最成熟和流行的部分里的一些。
-
不可变集合(Immutable collections),用于防御性编程,常量集合,以及提高效率
-
新的集合类型(New collection types),提供了一些JDK的集合本该做得更好的用例:多重集,多重映射,表,双向映射,以及其它。
- 强大的集合工具(Powerful collection utilities),提供了java.util.Collection没有提供的操作
- 扩展工具(Extension utilities):想要写一个集合的装饰器?实现一个迭代器?我们可以让它变得更容易。
-
- 缓存(Caches):本地缓存,使用得当,并且支持多种过期(expiration)行为
- 函数式(Functional idioms):谨慎使用,Guava的函数式可以极有效地简化代码
- 并发(Concurrency):强大而又简单地抽象,使得写出正确的并发代码更容易
- ListenableFuture:在完成时执行回调的Future
- Service:可以启动和停止的东西,为你处理好了实现起来会很困难的状态逻辑
- 字符串(Strings):一些极其有用的字符串工具:拆分,合并,填充,以及更多功能
- 基本类型(Primitives):用于基本类型的操作,比较int和char, 一些JDK没有提供操作,包括一些类型的有符号形式
- 范围(Ranges):Guava用于处理Comparable类型的范围的强大的API,连续的以及离散的。
- I/O:简化I/O操作,特别对整个I/O流和文件的操作,用于Java5和6.
- 哈希(Hashing): 比Object.hashCode()更加精致的哈希,包括布隆过滤器。
- 事件总线(EventBus):两个组件之间发布-采集形式的交流,然而并不要求这些组件之间显式地互相注册
- 数学工具(Math):优化的,彻底测试过的数学工具,是JDK没有提供的
- 反射(Reflection):Guava为了Java的反射能力提供的工具
- 提示:使用Guava实现你的程序想做的事
- Guava的哲学(Philosophy): Guava是什么,Guava不是什么,我们的目标是什么。
- 在你的构建中使用Guava(Using Guava in your build), 包括Maven, Gradle和其它的一些构建工具
- 使用专业防护(Using ProGuard )来避免你的JAR绑定到Guava里你不用的部分。
- 与Apache Common等价的部分(Apache Commons equivalents),帮助你把代码从Apache Common的集合转到Guava
- 兼容性(Compatibility),在Guava的不同版本间的区别
- 被遗弃的点子(Idea Graveyard),一些被拒绝的新特性的请求
- 伙伴(Friends),我们喜欢和仰慕的开源项目
- 如何贡献(HowToContribute),如何为Guava做贡献