用户指导

本文翻译自http://code.google.com/p/guava-libraries/wiki/GuavaExplained,由十八子将翻译,发表于博客园

http://www.cnblogs.com/shibazijiang/版权所有,转载请注明作者以及转载地址

Guava工程包含了一些Google的核心库,这些库是我们在开发java语言为基础的工程时信赖的工具,包含了集合,缓存,基本支持工具,并发处理库,通用注释,字符串处理,i/o等等。他们中的每个都是google的工程师们每天在实际的产品服务中需要用到的工具。

但是拉网式搜索javadoc不是最有效率的充分利用这些库的有效办法。在这儿,我们试着以一种易读、愉悦的方式对最受人欢迎的最强大的Guava的一些特点做一解释。

这个WIKI正在建设中,它的一些部分还在逐步完善。

  • Basic utilities (基本工具集):让使用java语言更愉悦

Using and avoiding null(避免使用null): null可能会引起歧义,可能会造成让人迷惑不解的错误。它总是让人不爽。许多guava工具直接拒绝使用null,并且遇到null直接快速失败。而不是盲目的接收null。

Preconditions(预先处理): 更容易的预先处理

Common object methods(通用对象方法):简化对象方法的实现,像hashCode() 和 toString().这种方法的实现。(译者注:在原生java中如一个对象作为Map的key的时候就要重写这两个函数)

Ordering:(排序):Guava强大的链式比较器类

Throwables: (抛出异常):简化了检查异常和错误。

  • Collections: Guava拓展了原生java集合系统。这是guava最成熟最流行的部分。(译者注:当然,Guava就是由Collection集拓展而来的)

Immutable collections,:是为了防御性编程,常量集合,和提升效率。

New collection types:为了使用JDK没有提出但可以实现的集合,如multisets, multimaps, tables, bidirectional maps,,还有更多。

Powerful collection utilities,:为了原生java Collections没有提供的类。

Extension utilities: 写一个集合包装器?实现一个Iterator?我们能让它更容易。

  • Caches: 更好地使用局部缓存,支持很大范围的生存时间。
  • Functional idioms::保守的使用,Guava函数式编程风格能显著简化代码。
  • Concurrency: 强大的简单的抽象类能让编写正确的并发代码变得更容易。

ListenableFuture:当完成的时候有回调的Futures.

Service:这些工具为你启动和关闭,以及处理困难的状态逻辑。

  • Strings: 一些非常有用的字符串工具:splitting, joining, padding,还有更多。
  • Primitives:可以操作基础数据类型,像int和char,包含一些无符号类型变体。这些JDK都没有提供。
  • Ranges:Guava处理可比较类型的范围数据最强大的API,包含了连续和离散的数据类型。
  • I/O:简化了i/o操作,尤其是Java 5 和 6中的I/O streams 和 files。
  • Hashing:提供了比Object.hashCode()更精致的工具。
  • EventBus:提供在组件之间Publish-subscribe-style的通信方式,不用组件在另一个组建明确地注册。
  • Math:提供了JDK没有提供的优化的,全面测试过的数学工具类。
  • Reflection:为java反射能力提供工具。
  • Tips:用Guava让你的应用像你想象的那样工作。

Philosophy:Guava是,也不是我们的目标。

Using Guava in your build 用Maven,Gradle或者别的工具创建你的系统。

Using ProGuard: 避免把Guavaz中你不用的部分塞入你的JAR中。

Apache Commons equivalents, 使用Apache Commons Collections.帮助你改动代码。

Compatibility,(兼容性)注意不同版本的细节差异。

Idea Graveyard, 对某个特性的请求毫无意外地被拒绝。

Friends 这是一个我们喜欢和仰慕的开源项目。

注意:为了讨论这个wiki的内容。你可以使用guava讨论邮件列表。

[技术翻译]Guava-libraries(一): 用户指导的更多相关文章

  1. [技术翻译]Guava官方文档Ordering

    关于排序 Guava的链式比较器 例子 assertTrue(byLengthOrdering.reverse().isOrdered(list)); 梗概 Ordering是Guava的链式比较器类 ...

  2. 以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区

    以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区 以正确的方式开源 Python 项目 英文原文:Open Sourcing a Python Project the Right ...

  3. iOS-王云鹤 APP首次启动显示用户指导

    这个功能的重点就是在如何判断应用是第一次启动的. 其实很简单 我们只需要在一个类里面写好用户引导页面  基本上都是使用UIScrollView 来实现, 新建一个继承于UIViewController ...

  4. spring技术翻译开始

    从今天开始,我会坚持每天花费两个小时来翻译一本英文书(当然自己觉得绝对算得上是经典),可能我英文水平有限,但也请路过的高人予以指点. 如果有翻译的出入很大,望各位告知,本人一定更改.决定翻译的目的有两 ...

  5. [技术翻译]预加载响应式图像,从Chrome 73开始实现

    本次预计翻译三篇文章如下: 01.[译]9个可以让你在2020年成为前端专家的项目 02.[译]预加载响应式图像,从Chrome 73开始实现 03.[译]您应该知道的13个有用的JavaScript ...

  6. [技术翻译]使用Nuxt生成静态网站

    本周再来翻译一些技术文章,本次预计翻译三篇文章如下: 04.[译]使用Nuxt生成静态网站(Generate Static Websites with Nuxt) 05.[译]Web网页内容是如何影响 ...

  7. [技术翻译]Web网页内容是如何影响电池使用寿命的?

    本周再来翻译一些技术文章,本次预计翻译三篇文章如下: 04.[译]使用Nuxt生成静态网站(Generate Static Websites with Nuxt) 05.[译]Web网页内容是如何影响 ...

  8. [技术翻译]在现代JavaScript中编写异步任务

    本周再来翻译一些技术文章,本次预计翻译三篇文章如下: 04.[译]使用Nuxt生成静态网站(Generate Static Websites with Nuxt) 05.[译]Web网页内容是如何影响 ...

  9. 翻译:WebApi 认证--用户认证Oauth解析

        The Web API v2用户认证模板提供了流行的应用用户认证场景,如.使用本地帐号的用户名密码认账 (包括创建用户.设置和修改密码)以及使用第三方的认证方式,如facebook,googl ...

随机推荐

  1. 设计模式 Mixin (混入类)

    混入(mix-in)类代表类之间的另一种关系.在C++中,混入类的语法类似于多重继承,但是语义完全不同.混入类回答"这个类还可以做什么"这个问题,答案经常以"-able& ...

  2. 【POJ】2513 Colored Sticks

    字典树+并查集. #include <cstdio> #include <cstring> #include <cstdlib> #define MAXN 5000 ...

  3. phpMyAdmin <= 4.0.4.1 import.php GLOBALS变量注入漏洞

    漏洞版本: phpMyAdmin <= 4.0.4.1 漏洞描述: CVE(CAN) ID: CVE-2013-4729 phpmyadmin是MySQL数据库的在线管理工具,主要功能包括在线创 ...

  4. hdu-2586-How far away ?(离线LCA)

    题意: 给定一棵树,每条边都有一定的权值,q次询问,每次询问某两点间的距离. 分析: 这样就可以用LCA来解,首先找到u, v 两点的lca,然后计算一下距离值就可以了. 这里的计算方法是,记下根结点 ...

  5. UNIX环境下的消息队列

    消息队列和共享内存一样,也是一种IPC对象.消息队列其实就是消息的链表,每一则消息都是用户自己的结构体.服务端这边创建消息队列,客户端这边打开消息队列,两个进程就可以进行通信.创建和打开消息队列使用函 ...

  6. 2012 A 《中国近现代史纲要》课程期末考试试卷

    湖南人文科技学院2012—2013学年第1学期公共课 2011级<中国近现代史纲要>课程期末考试试卷 考核方式:(开卷)                                   ...

  7. 配置openStack使用spice

    注:因为在测试配置过程中反复配置过多次,以下内容可能并不完整,有待验证. 按官方文档(openstack-install-guide-yum-juno)搭建和配置的OpenStack默认使用novnc ...

  8. android快捷简单的实现音乐播放器

    自己做了一个相对完整的音乐播放器,现在把播放模块提取出来,分享给大家.音乐播放器基本功能都实现了的,可能有些BUG,希望谅解. 播放器功能如下: 1.暂停,播放 2.拖动条实现,快进,快退 3.歌词同 ...

  9. java中创建对象 类名 对象名=new 类名(); 后面的()什么意思

    类名 对象名=new 类名();类名 对象名 这个的解释是创建名称为"对象名"的"类名"类引用变量new ; 这个的解释是实例化对象类名() 这个的解释是无参数 ...

  10. C++中一个函数隐藏的有趣例子

    函数隐藏是一个函数的定义或声明导致其他一些函数不可见. 函数A隐藏函数B的条件:      1. 两个函数具有相同的函数名称      2. 具有不同的作用域.所谓定义域函数定义或声明的位置,如全局作 ...