文档章节

Guava 开源工具的简单介绍

乐在克里特
 乐在克里特
发布于 2017/02/24 13:45
字数 981
阅读 53
收藏 2
点赞 0
评论 0

Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦。

项目相关信息:

  官方首页: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

  源码包的简单说明: 

  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.io:I/O工具包。 

  com.google.common.math:原始算术类型和超大数的运算工具包。 

  com.google.common.net:网络工具包。 

  com.google.common.primitives:八种原始类型和无符号类型的静态工具包。 

  com.google.common.reflect:反射工具包。 

  com.google.common.util.concurrent:多线程工具包。

  类库使用手册:

  一.  基本工具类:让使用Java语言更令人愉悦。

  1. 使用和避免 null:null 有语言歧义, 会产生令人费解的错误, 反正他总是让人不爽。很多 Guava 的工具类在遇到 null 时会直接拒绝或出错,而不是默默地接受他们。

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

  3. 常见的对象方法: 简化了Object常用方法的实现, 如 hashCode() 和 toString()。

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

  5. Throwable类: 简化了异常检查和错误传播。

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

  1. Immutable collections(不变的集合): 防御性编程, 不可修改的集合,并且提高了效率。

  2. New collection types(新集合类型):JDK collections 没有的一些集合类型,主要有:multisets,multimaps,tables, bidirectional maps等等

  3. Powerful collection utilities(强大的集合工具类): java.util.Collections 中未包含的常用操作工具类

  4. Extension utilities(扩展工具类): 给 Collection 对象添加一个装饰器? 实现迭代器? 我们可以更容易使用这些方法。

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

  四.  Functional idioms(函数式): 简洁, Guava实现了Java的函数式编程,可以显著简化代码。

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

  1. ListenableFuture(可监听的Future): Futures,用于异步完成的回调。

  2. Service: 控制事件的启动和关闭,为你管理复杂的状态逻辑。

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

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

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

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

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

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

  十二. Math: 优化的 math 工具类,经过完整测试。

  十三. Reflection: Guava 的 Java 反射机制工具类。

以上基本介绍了Guava 开源工具包的整体结构.

 

下面重点推荐几个比较好的教程:(好的文章,应该反复地看)

http://www.cnblogs.com/peida/tag/Guava%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/

Google Guava官方教程(中文版)

http://ifeve.com/google-guava/

© 著作权归作者所有

共有 人打赏支持
乐在克里特
粉丝 15
博文 265
码字总数 394729
作品 0
杭州
程序员
Google Guava Collections 使用介绍

Google Guava Collections(以下都简称为 Guava Collections)是 Java Collections Framework 的增强和扩展。每个 Java 开发者都会在工作中使用各种数据结构,很多情况下 Java Collections F...

毒性逆转 ⋅ 2011/11/17 ⋅ 1

Google Guava 笔记

一、引言 Guava 是 google 几个java核心类库的集合,包括集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common ...

qllinhongyu ⋅ 2014/09/18 ⋅ 0

Java工具及框架汇总

如今软件的复杂度已经超过了程序员们理解的极限,我们在每日的编程中不需要从轮子造起,众多成熟稳定的框架可以帮我们简化开发,避免踩坑。 此文记录了我平时工作中常用的一些框架,及其简短...

rathan0 ⋅ 2016/01/15 ⋅ 0

web开发可选用优秀开源组件、框架

1:Druid :来自阿里巴巴的 JDBC连接池 监控组件Druid 详情可见:https://www.oschina.net/p/druid 2:fastjson:阿里巴巴公司开源的速度最快的Json和对象转换工具 吓一跳的结果:fastjson和...

wbx417 ⋅ 2016/11/05 ⋅ 0

使用 Google Guava 美化你的 Java 代码:1~4

1-使用 GOOGLE COLLECTIONS,GUAVA,STATIC IMPORTS 编写漂亮代码 写在前面: 以前在一个项目中用到过guava,当时匆匆用,也没细研究,今天偶然在occhina看到这个系列教程的翻译,感觉不错,介...

xrzs ⋅ 2013/10/28 ⋅ 7

基础工具--Guava-Libraries学习笔记(一)

什么是Guava-Libraries? Guava-Libraries是google对java的一个扩展,主要涵盖集合、缓存、并发、I/O、反射等等。 它本来是Google内部所使用的一个类库,后来整理开源出来了。这套库的设计引...

长平狐 ⋅ 2013/11/25 ⋅ 0

Google Guava 的 5 个鲜为人知的特性

(点击上方公众号,可快速关注) 来源:花名有孚, it.deepinmind.com/java/2015/03/27/google-guava-5-things-you-never-knew-it-can-do.html Google Guava有哪些比较冷门但却又实用的特性呢...

px01ih8 ⋅ 2017/12/07 ⋅ 0

Guava库学习:学习Guava Files系列(一)

原文地址:Guava库学习:学习Guava Files系列(一) 对程序开发人员来说,文件的读写是很重要的一项技能。但是令人惊讶的是,尽管Java提供了一个丰富而健壮的I/O库,进行一些基本的文件操作却...

Realfighter ⋅ 2015/04/30 ⋅ 0

Guava Collections使用介绍[超级强大]

功能列举 可以说 Java Collections Framework 满足了我们大多数情况下使用集合的要求,但是当遇到一些特殊的情况我们的代码会比较冗长,比较容易出错。Guava Collections 可以帮助你的代码更...

飞翼 ⋅ 2016/12/13 ⋅ 0

Google Guava 中文指南

温馨提示:Guava 中文指南的 GitHub 地址为 guava-guide,欢迎大家、,纠错。 Guava 中文指南   Guava 项目包含若干被 Google 的 Java 项目依赖的核心类库,例如:集合、缓存、原生类型支持...

qq_35246620 ⋅ 2017/09/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 昨天 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 昨天 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 昨天 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 昨天 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

SpringBoot简单使用ehcache

1,SpringBoot版本 2.0.3.RELEASE ①,pom.xml <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELE......

暗中观察 ⋅ 昨天 ⋅ 0

监控各项服务

比如有三个服务, 为了减少故障时间,增加监控任务,使用linux的 crontab 实现. 步骤: 1,每个服务写一个ping接口 监控如下内容: 1,HouseServer 是否正常运行,所以需要增加一个ping的接口 ; http...

黄威 ⋅ 昨天 ⋅ 0

Spring源码解析(八)——实例创建(下)

前言 来到实例创建的最后一节,前面已经将一个实例通过不同方式(工厂方法、构造器注入、默认构造器)给创建出来了,下面我们要对创建出来的实例进行一些“加工”处理。 源码解读 回顾下之前...

MarvelCode ⋅ 昨天 ⋅ 0

nodejs __proto__跟prototype

前言 nodejs中完全没有class的这个概念,这点跟PHP,JAVA等面向对象的语言很不一样,没有class跟object的区分,那么nodejs是怎么样实现继承的呢? 对象 对象是由属性跟方法组成的一个东西,就...

Ai5tbb ⋅ 昨天 ⋅ 0

Ubuntu16.04 PHP7.0 不能用MYSQLi方式连接MySQL5.7数据库

Q: Ubuntu16.04 PHP7.0 不能用MYSQLi方式连接MySQL5.7数据库 A: 执行以下2条命令解决: apt-get install php-mysql service apache2 restart php -m 执行后会多以下4个模块: mysqli mysqlnd...

SamXIAO ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部