美文网首页
Guava简介

Guava简介

作者: JohnShen | 来源:发表于2016-03-01 16:29 被阅读498次

    本系列基于官方wiki进行翻译,个别地方的阐述会加入个人的理解,不对的地方,欢迎指正。

    用户手册

    Guava项目包含了诸多的在我们基于Java的项目所依赖的Google核心库,包括了:集合(collections)、缓存(caching)、原生的类型支持(primitives support)、并发类库(concurrency libraries)、通用注解(common annotations)、字符串处理(string processing)、输入/输出(I/O),等等。每一个工具都在真正地被Google的开发者们每天地运用在生产环境当中,为用户提供服务。

    然而,查阅Javadoc对于学习如何使用一个类库来说,并不总是最高效的方式。因此,在这里,我们尝试为Guava的一些最流行的和最强大的特色功能,提供一种可读的和愉快的阐述。

    Guava包含的内容

    • 基础工具:更加愉快地使用Java语言
      • 使用和避免null:null是模棱两可的,可能引起令人困惑的错误,有时也仅仅是字面上的令人不悦。很多Guava工具都拒绝null,并且在对null值进行快速失败的处理,而不是盲目地接受它。
      • 前置条件:为你的方法提供前置条件,使测试更加容易。
      • 通用对象方法:简单地实现Object中的方法,比如hashCode()toString()
      • 排序:Guava强大的“流式比较器(Fluent Comparator)”类。
      • Throwables:简化异常和错误的传播和检查。
    • 集合:Guava为JDK集合生态系统提供的扩展。这些是Guava中最成熟和最流行的部分。
      • 不可变集合:为了防御式编程,常量集合,提高效率。
      • 新集合类型:为了应对JDK集合应对不了的那些使用场景:multisets、multimaps、tables、bidirectional maps,等等。
      • 强大的集合工具:为了补充java.util.Collections中没有提供的常用操作。
      • 扩展工具:需要写一个Collection装饰器实现Iterator接口吗?我们可以使它变得更简单。
    • 缓存:本地缓存,支持各种各样的过期策略。
    • 函数式风格:请尽可能少的使用它,Guava的函数式风格可以显著地简化代码。
    • 并发:强大并且简单的抽象,使得编写正确的并发代码变得更容易。
      • ListenableFuture:一个在完成以后可以回调的Future
      • Service:一个可以启动,停止的东西。其中已经为你搞定了复杂的状态逻辑。
    • 字符串:一些非常有用的字符串工具:splitting、joining、padding,等等。
    • 原生类型:对原生类型(比如intchar)的一些JDK没有提供的操作(包括一些类型的无符号形式)。
    • 区间:Guava的强大API,为处理在Comparable类型上的区间问题,包括连续的和离散的。
    • I/O:简化I/O操作,尤其是对于Java 5和Java 6,在整个流和文件上的操作。
    • 哈希:这是比Object.hashCode()提供的更复杂的散列算法,包括Bloom过滤器。
    • 事件总线:在组建之间的发布-订阅风格的通信,不需要组件具体指定被注册的组件。
    • Math:优化的,并且被彻底测试过的,而JDK没有提供的Math工具。
    • 反射:Guava为Java反射所提供的工具。

    相关文章

      网友评论

          本文标题:Guava简介

          本文链接:https://www.haomeiwen.com/subject/snzgkttx.html