Guava简介

本系列基于官方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反射所提供的工具。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,966评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,803评论 18 399
  • 老板说你一周至少拜访50个客户你拜访了25个你觉得很认真了而和你一起进公司的小李他一周拜访了100个 有个大朋友昨...
    肖梦阅读 1,156评论 10 7
  • 时间过得很快,转眼之间,两年就过去了。但关于初中的点点滴滴我却没有忘掉丝毫。也许,我是真的把初中当成自己的家了。...
    谷梁庸阅读 295评论 0 0