Google Guava简介
Guava 项目包含谷歌在基于 Java 的项目中依赖的 Google 的几个核心库:集合、缓存、原语支持、并发库、通用注释、字符串处理、I/O 等等。Google 员工每天都在生产服务中使用这些工具中的每一个。
下面翻译自guava_wiki,了解下Guava提供的一些工具,具体引用场景再去使用会更加熟练,后面写几篇会常使用到的工具类。
- 基本实用程序:使 Java 语言的使用更加愉快。
- 使用和避免使用 null :
null
可能会模棱两可,可能会导致令人困惑的错误,并且有时只是令人不快。许多 Guava 实用程序拒绝并在 null 上快速失败,而不是盲目地接受它们。 - 前提条件:更轻松地测试您的方法的前提条件。
- 通用对象方法:简化实现
Object
方法,例如hashCode()
和toString()
。 - Ordering : Guava 强大的“fluent
Comparator
”类。 - Throwables:简化异常和错误的传播和检查。
- 使用和避免使用 null :
- Collections:Guava 对 JDK 集合生态系统的扩展。这些是Guava最成熟和最受欢迎的部分。
- Graphs :用于对图形结构化数据(即实体及其之间的关系)进行建模的库 。主要特点包括:
- 图:一个图,其边是匿名实体,没有自己的身份或信息。
- ValueGraph:一个图,其边具有关联的非唯一值。
- 网络:边缘是唯一对象的图。
- 支持可变和不可变、有向和无向以及其他几个属性的图。
- 缓存:本地缓存,做得对,支持各种过期行为。
- 函数式习语:谨慎使用,Guava 的函数式习语可以显着简化代码。
- 并发性:强大、简单的抽象,使编写正确的并发代码变得更容易。
- ListenableFuture:Futures,完成后带有回调。
- 服务:启动和关闭的东西,为你处理困难的状态逻辑。
- 字符串:一些非常有用的字符串实用程序:拆分、连接、填充等。
- Primitives:对原始类型的操作,例如
int
和char
,JDK 未提供,包括某些类型的无符号变体。 - Ranges:Guava 强大的 API,用于处理
Comparable
连续和离散类型的范围。 - I/O:简化的 I/O 操作,尤其是在整个 I/O 流和文件上,适用于 Java 5 和 6。
- Hashing:比 提供的更复杂的哈希工具
Object.hashCode()
,包括 Bloom 过滤器。 - EventBus:组件之间的发布订阅式通信,无需组件显式相互注册。
- Math:JDK 未提供的经过优化的、经过全面测试的数学实用程序。
- Reflection:用于 Java 反射功能的 Guava 实用程序。
- 构建使用 Guava,构建系统包括 Maven、Gradle 等。
Leave a Reply