Guava官方地址:https://github.com/google/guava/wiki
用户指导
Guava是谷歌研发的一系列Java基础工具项目,包含collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等。其被大量应用于谷歌的许多产品中。
查阅Javadoc并非一种学习如何高效率的使用Java的方法。这里,我们尝试提供最具特色的Guava特征并尽可能将其描述的可读性高,释义完整。
此wiki还在不断补充中,后续将添加更多内容。
- Basic utilities:让使用Java语言更加轻松
-
- Using and avoiding null: null 因为其模棱两可的含义通常情况下会引起很多奇怪的错误,许多Guava的工具都拒绝使用null是一个明智的选择。
- Preconditions: 令你的方法在测试先决条件时更加方便。
- Common object methods: 简单明了的实现了 Object 方法, 例如 hashCode() 与 toString()方法。
- Ordering: Guava中非常强大的 "fluent Comparator" 类。
- Throwables: 简化传播,检查异常与错误。
- Collections: Guava扩展的JDK collections生态系统。这部分在Guava中最成熟,使用的最广泛。
-
- Immutable collections, 提高防御性编程与不变集合的效率。
- New collection types, 提供一些JDK collections没有类似功能的类,例如:multisets, multimaps, tables, bidirectional maps等。
- Powerful collection utilities, 提供java.util.Collections中没有的常见操作。
- Extension utilities: 想对一个Collection进行包装,实现Iterator? 不,我们能让他更加简单。
- Graphs: 一个用于构建图中实体与实体之间关系的库。主要特征包括:
-
- Graph: 无权图
- ValueGraph: 加权图
- Network: 边是唯一对象的图。
- 支持图的可变与不可变,定向与不定向以及图的一系列其他属性。
- Caches: 本地缓存应该这样做,其支持各种各样的过期行为。
- Functional idioms: Guava简化了函数式编程的代码,使用非常简练。
- Concurrency: 通过简单且强大的抽象使得编写正确的并发代码更加容易。
-
- ListenableFuture: Futures, 线程完成工作后返回的对象。
- Service: 用于开启与关闭事务,使用时需要注意自身代码的状态逻辑。
- Strings:一些非常有用的字符串实用程序:拆分、连接、填充等。
- Primitives: 不是由JDK提供的原始类型(如int和char)的操作,包括一些类型的无符号变体。
- Ranges: Guava的强大API,用于处理 Comparable 类型的范围操作,不论连续还是离线。
- I/O: 简化了I/O操作,特别是对于Java 5和6的整个I/O流和文件。
- Hashing: 比Object.hashCode()提供更复杂的散列工具,其中包括Bloom过滤器。
- EventBus: 组件之间的订阅式通信不需要组件显式地彼此注册。
- Math: JDK未提供的优化、彻底测试的数学实用工具。
- Reflection: Guava用于Java的反射的实用程序。
- Tips: 让你的应用程序以你想要的Guava方式工作。
-
- Philosophy: Guava是什么不是什么,以及我们的目标是什么。
- Using Guava in your build, 构建系统包含 Maven, Gradle等。
- Using ProGuard 避免捆绑你不使用JAR的那部分Guava 。
- Apache Commons equivalents, 帮助您使用Apache Commons Collections编译代码。
- Compatibility,Guava版本的细节。
- Idea Graveyard, 已被最终拒绝的特征请求。.
- Friends, 我们喜欢和欣赏的开源项目。
- HowToContribute, 如何为Guava做出贡献。
NOTE: 要讨论这个wiki的内容,请只使用guava-discuss邮件列表。