Guava中包含了Google的一些核心类库:比如集合,缓存,并发包,常用注解,字符串处理,I/O等等。这些工具类被谷歌的工程师们经常用到。
但是通过查阅文档不是一个有效的学习类库的方式。这儿, 我们尝试提供一写方便查阅的比较常用的Guava工具类。
- 基础工具: 更加舒适的使用java。
- Using and avoiding null: null 可不能被含糊, 能引起一些莫名的错误。许多Guava工具拒绝null并且会快速失败,而不是盲目的接受null。
- Preconditions: 非常容易的为你的方法做个先决测试。
- Common object methods: 简单的实现Object方法,像 hashCode() and toString().
- Ordering: Guava强大的比较类。
- Throwables: 简化传播,检查异常和错误。
- Collections: Guava对JDK集合的扩展。Guava中用的比较多的地方。
- Immutable collections, 防御性编程,常量集合,提高效率。
- New collection types, 一些JDK Collections中没有解决的: multisets, multimaps, tables, 双向maps等。
- Powerful collection utilities, 一些 java.util.Collections中没有的工具。
- Extension utilities: 写一个集合的装配? 实现一个Iterator? 我们能容易的实现他们。
- Caches: 本地缓存,使用得当,并支持过期行为。
- Functional idioms: 谨慎使用, Guava的Functional idioms可以显著简化代码。
- Concurrency: 功能强大,操作简单的抽象,使之更容易编写正确的并发代码。
- ListenableFuture: Futures回调。
- Service: 事情的启动和关闭,为你更好的处理有难度的逻辑。
- Strings: 很多出色的string处理: splitting, joining, padding等.
- Primitives: 操作基本类型像int and char, 以及idk没有提供的,包含一些无符号变量类型。
- Ranges: 提供强大处理范围比较,连续和离散范围的API。
- I/O: 简单的IO操作, 尤其在java1.5,1.6整个IO流和文件
- Hashing: 提供比Object.hashCode(), including Bloom filters更精准的hash。
- EventBus: 发布 - 订阅式组件之间的通信,而不需要的组件相互直接注册。
- Math: 优化,全面测试过的JDK没有提供数学的工具。
- Reflection: 为java的反射。
----------------------
粗略翻译,敬请谅解。
对应英文地址:https://code.google.com/p/guava-libraries/wiki/GuavaExplained
时间: 2024-10-05 17:51:51