Guava (Google Core Libraries for Java)用户指南

zeo 2019年12月23日 1,737次浏览

用户指南

Guava项目包含我们在基于Java的项目中依赖的Google的几个核心库:集合,缓存,原语支持,并发库,通用批注,字符串处理,I / O等。这些工具中的每一种确实每天都会被Google员工用于生产服务中。

但是,通过Javadoc查阅并不是总是最有效的学习如何充分利用库的方法。在这里,我们尝试提供Guava最流行和最强大的功能的可读且令人愉快的解释。

基本实用程序:使使用Java语言更加愉快。

  • 使用和避免使用null:null可能会导致模棱两可,可能导致混乱的错误,有时甚至是令人不快的。许多Guava实用程序拒绝null并快速失败,而不是盲目地接受它们。
  • 前提条件:更轻松地测试方法的前提条件。
  • 通用对象方法:简化实现Object方法,例如hashCode()和toString()。
  • 排序:Guava强大的“fluent Comparator”类。
  • Throwables:简化传播和检查异常和错误。

集合:Guava对JDK集合生态系统的扩展。这些是Guava中最成熟,最受欢迎的部分。

  • 不可变的集合,用于防御性编程,恒定的集合和提高的效率。
  • 新的集合类型,用于JDK集合无法尽力解决的用例:多集,多图,表,双向图等。
  • 功能强大的收集实用程序,用于未提供的常见操作java.util.Collections。
  • 扩展实用程序:编写Collection装饰器?实施Iterator?我们可以使其变得更容易。
  • 图:用于对图结构数据(即实体及其之间的关系)进行建模的库 。主要功能包括:
  • 图:其边缘是匿名实体且没有自己的身份或信息的图。
  • Value图:其边缘具有关联的非唯一值的图。
  • 网络:边缘为唯一对象的图形。
  • 支持可变且不可变,有向和无向的图,以及其他一些属性。

缓存:本地缓存,操作正确,并且支持各种过期行为。

Functional idioms:Guava的功能习语很少使用,可以大大简化代码。

并发:功能强大,简单的抽象,使编写正确的并发代码更加容易。

  • ListenableFuture:future,完成时带有回调。
  • 服务:启动和关闭的事物,为您处理困难的状态逻辑。

字符串:一些非常有用的字符串实用程序:拆分,连接,填充等。

Primitives:对JDK未提供的基本类型(如int和)的操作char,包括某些类型的无符号变体。

范围:Guava强大的API,用于处理Comparable连续和离散类型的范围。

I / O:针对Java 5和6的简化的I / O操作,尤其是在整个I / O流和文件上。

散列:比Object.hashCode() 提供的工具更复杂的散列的工具,包括Bloom过滤器。

EventBus:组件之间的发布-订阅式通信,而无需组件之间进行显式注册。

数学:JDK未提供经过优化,经过全面测试的数学实用程序。

反射:用于Java反射功能的Guava实用程序。

提示:使用Guava使您的应用程序按您希望的方式工作。

  • 哲学:什么是Guava,什么不是,以及我们的目标。
  • 在构建中使用Guava,并使用Maven,Gradle等构建系统。
  • 使用ProGuard避免将您的JAR不使用的Guava部分捆绑在一起。
  • Apache Commons等效项,可帮助您翻译使用Apache Commons Collections的代码。
  • 兼容性,Guava榴版本之间的详细信息。

原文地址