[Guava源码日报(1)]Guava类库简介

标签: guava java
1060人阅读 评论(0) 收藏 举报
分类:

1. 简介

Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等。这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦。

2. 官方信息

官方首页:http://code.google.com/p/guava-libraries

官方下载:http://code.google.com/p/guava-libraries/downloads/list

官方文档:http://docs.guava-libraries.googlecode.com/git/javadoc

                   http://www.ostools.net/apidocs/apidoc?api=guava

3. 类包说明

类包描述
com.google.common.annotations普通注解类型
com.google.common.base基本工具类库和接口
com.google.common.cache缓存工具包,非常简单易用且功能强大的JVM内缓存
com.google.common.collect带泛型的集合接口扩展和实现,以及工具类
com.google.common.eventbus发布订阅风格的事件总线
com.google.common.hash哈希工具包
com.google.common.ioI/O工具包
com.google.common.math原始算术类型和超大数的运算工具包
com.google.common.net网络工具包
com.google.common.primitives八种原始类型和无符号类型的静态工具包
com.google.common.reflect反射工具包
com.google.common.util.concurrent多线程工具包

4. 类库使用手册

4.1 base 基本工具类库和接口

看一下base给我们带来的什么样的改变:

  • 使用和避免 null    

    null 有语言歧义, 会产生令人费解的错误。而Guava 的工具类在面对 null 时则会直接拒绝或出错,而不是默默地接受他们。

  • 前提条件

    更容易的对你的方法进行前提条件的测试。

  • 常见的对象方法

    简化了Object常用方法的实现, 如 hashCode() 和 toString()。

  • 排序

    Guava 强大的 "fluent Comparator"比较器, 提供多关键字排序。

  • Throwable类

    简化了异常检查和错误传播。

基于以上,我们在阅读Guava的base类包内容时应该更着重观察以上几个方面。

4.2  collection 集合类

集合类库是 Guava 对 JDK 集合类的扩展, 这是 Guava 项目最完善和为人所知的部分。

  • Immutable collections(不变的集合)

    防御性编程, 不可修改的集合,并且提高了效率。

  • New collection types(新集合类型)

    JDK collections 没有的一些集合类型,主要有:multisets,multimaps,tables, bidirectional maps等等

  • Powerful collection utilities(强大的集合工具类)

    java.util.Collections 中未包含的常用操作工具类

  • Extension utilities(扩展工具类)

    给 Collection 对象添加一个装饰器,实现迭代器。

4.3 cache 缓存

本地缓存,可以很方便的操作缓存对象,并且支持各种缓存失效行为模式。

4.4 Functional idioms 函数式编程

简洁, Guava实现了Java的函数式编程,可以显著简化代码。

4.5 Concurrency 并发操作类

强大,简单的抽象,让我们更容易实现简单正确的并发性代码。

4.6 Strings 字符串工具类

一个非常非常有用的字符串工具类: 提供 splitting,joining, padding 等操作。

4.7 Primitives 类型

扩展 JDK 中未提供的对原生类型(如int、char等)的操作, 包括某些类型的无符号的变量。

4.8  Ranges 

Guava 一个强大的 API,提供 Comparable 类型的范围处理, 包括连续和离散的情况。

4.9 I/O

简化 I/O 操作, 特别是对 I/O 流和文件的操作, for Java 5 and 6.

4.10 Hashing

提供比 Object.hashCode() 更复杂的 hash 方法, 提供 Bloom filters.

4.11 EventBus

基于发布-订阅模式的组件通信,但是不需要明确地注册在委托对象中。

4.12 Math

优化的 math 工具类,经过完整测试。

4.13 Reflection

Guava 的 Java 反射机制工具类。


查看评论

Guava介绍 – Google的Java常用类库

Guava的前身是Google Collections,是Google开源出来的一个Java常用类库,包含了一些集合的便捷操作API。从Google Collections进化到Guava后,对常用的...
  • superdog007
  • superdog007
  • 2014-05-20 08:54:54
  • 6321

Guava类库学习-环境准备工作

google公司开发的Guava是对jdk提供的扩展,提供了很多实用的类来简化代码 前期准备工作: 1. 需要下载jar包,jar包就是把大量的(*.class)字节码文件制作为压缩包,称jar包...
  • Bazingaea
  • Bazingaea
  • 2016-04-23 16:28:52
  • 619

Guava源码学习笔记

学习和使用Guava可以使自己的代码变得更加优雅、简洁。 Know and use the libraries, don’t reinvent the wheel....
  • dfb198998
  • dfb198998
  • 2016-12-01 19:53:03
  • 1748

Guava 库整理

参考: http://codemunchies.com/2009/10/beautiful-code-with-google-collections-guava-and-static-imports...
  • fover717
  • fover717
  • 2012-10-16 23:17:38
  • 1429

guava-sources.jar

  • 2015年03月20日 21:05
  • 1.22MB
  • 下载

谷歌guava的jar包和源码,值得收藏

  • 2015年03月12日 16:16
  • 2.09MB
  • 下载

读源码练内功(一):guava之eventbus

从guava中eventbus中学习如何进行annotation编程
  • kiwi_coder
  • kiwi_coder
  • 2013-07-16 23:14:55
  • 8922

Google开源Guava包让使用Java语言变得更舒适

  • 2014年07月02日 14:03
  • 1.9MB
  • 下载

Guava学习笔记【1】:Google Guava 类库简介

Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libra...
  • azhegps
  • azhegps
  • 2017-05-08 23:53:42
  • 132

guava最新Jar及源码

  • 2016年01月23日 10:28
  • 6.8MB
  • 下载
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 159万+
    积分: 2万+
    排名: 370
    博客专栏
    最新评论