用户指南 User Guide

Guava项目包括了一些Google的核心库,是我们在基于Java的项目中所依赖的,这些库包括:集合,缓存,对基本类型的支持,并发库,通用的注解,字符串处理,I/O,等等。这些工具的每一个真的都在被Google每天使用着,而且是在生产系统中。

但是只是在Javadoc中寻觅不是学会怎么使用一个库的最有效的方法。在此,我们试图对Guava的一些最流行和强大的特性做出良好的阐述。

这个wiki还没有完工,它的有些部分仍然在构建中。

  • 基础工具:让使用Java这个语言更令人愉快

    • 使用以及避免null(Using and avoiding null): null可能会令人困惑,可以造成令人迷惑的错误,当然有时候就是看着不舒服。一些Guava的工具拒绝null,并且在使用null时快速失败,而不是盲目地接收null
    • 前置条件(Preconditions):使得为你的方法测试前置条件更容易
    • 对象通用的方法(Common object methods):使得实现Object的方法更简单,比如hashCode()以及toString()
    • 顺序(Ordering):提供Guava强大的"fluent Comparator"类(译注:就是以fluent代码定义对象的Ordering,详见链接过去的文档)
    • 异常(Throwables):简化了异常和错误的传播和检验
  • 集合:Guava对于JDK集合系统的扩展。下面是Guava的最成熟和流行的部分里的一些。

    • 不可变集合(Immutable collections),用于防御性编程,常量集合,以及提高效率

    • 新的集合类型(New collection types),提供了一些JDK的集合本该做得更好的用例:多重集,多重映射,表,双向映射,以及其它。
    • 强大的集合工具(Powerful collection utilities),提供了java.util.Collection没有提供的操作
    • 扩展工具(Extension utilities):想要写一个集合的装饰器?实现一个迭代器?我们可以让它变得更容易。
  • 缓存(Caches):本地缓存,使用得当,并且支持多种过期(expiration)行为
  • 函数式(Functional idioms):谨慎使用,Guava的函数式可以极有效地简化代码
  • 并发(Concurrency):强大而又简单地抽象,使得写出正确的并发代码更容易
    • ListenableFuture:在完成时执行回调的Future
    • Service:可以启动和停止的东西,为你处理好了实现起来会很困难的状态逻辑
  • 字符串(Strings):一些极其有用的字符串工具:拆分,合并,填充,以及更多功能
  • 基本类型(Primitives):用于基本类型的操作,比较int和char, 一些JDK没有提供操作,包括一些类型的有符号形式
  • 范围(Ranges):Guava用于处理Comparable类型的范围的强大的API,连续的以及离散的。
  • I/O:简化I/O操作,特别对整个I/O流和文件的操作,用于Java5和6.
  • 哈希(Hashing): 比Object.hashCode()更加精致的哈希,包括布隆过滤器。
  • 事件总线(EventBus):两个组件之间发布-采集形式的交流,然而并不要求这些组件之间显式地互相注册
  • 数学工具(Math):优化的,彻底测试过的数学工具,是JDK没有提供的
  • 反射(Reflection):Guava为了Java的反射能力提供的工具
  • 提示:使用Guava实现你的程序想做的事
    • Guava的哲学(Philosophy): Guava是什么,Guava不是什么,我们的目标是什么。
    • 在你的构建中使用Guava(Using Guava in your build), 包括Maven, Gradle和其它的一些构建工具
    • 使用专业防护(Using ProGuard )来避免你的JAR绑定到Guava里你不用的部分。
    • 与Apache Common等价的部分(Apache Commons equivalents),帮助你把代码从Apache Common的集合转到Guava
    • 兼容性(Compatibility),在Guava的不同版本间的区别
    • 被遗弃的点子(Idea Graveyard),一些被拒绝的新特性的请求
    • 伙伴(Friends),我们喜欢和仰慕的开源项目
    • 如何贡献(HowToContribute),如何为Guava做贡献

Guava文档翻译之 Guava简介的更多相关文章

  1. [Guava官方文档翻译] 1.Guava简介 (Introduction)

    用户指南 Guava包含Google在Java项目中用到的一些核心库:collections, caching, primitives support, concurrency 库, common a ...

  2. [Guava官方文档翻译] 7. Guava的Immutable Collection(不可变集合)工具 (Immutable Collections Explained)

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3538666.html ,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体 ...

  3. Guava -- 集合类 和 Guava Cache

    Guava -- 集合类 和 Guava Caches 1. 什么是 Guava Guava 是 google 推出的一个第三方 java 库,用来代替 jdk 的一些公共操作,给我印象特别深的就是 ...

  4. Guava文档翻译之 Service

    概览 Guava的接口代表了一个有运行状态的对象,有启动和停止的方法.比如网络服务器,RPC服务器,以及计时器等,都可以实现Service接口.掌管像这样的服务的状态,需要正确地管理启动和关闭,因此会 ...

  5. Guava文档翻译之ListenableFuture

    ListenableFutureExplained 并发是一个困难的问题,但是使用强大而简单的抽象可以极大地简化并发问题.为了简化事情,Guava使用ListenableFuture继承了JDK的Fu ...

  6. [Guava官方文档翻译] 5. Guava的Object公共方法 (Common Object Utilities Explained)

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3537367.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...

  7. 【Guava】使用Guava的RateLimiter做限流

    一.常见的限流算法 目前常用的限流算法有两个:漏桶算法和令牌桶算法. 1.漏桶算法 漏桶算法的原理比较简单,请求进入到漏桶中,漏桶以一定的速率漏水.当请求过多时,水直接溢出.可以看出,漏桶算法可以强制 ...

  8. 【Guava】基于guava的重试组件Guava-Retryer

    一.使用场景 在日常开发中,我们经常会遇到需要调用外部服务和接口的场景.外部服务对于调用者来说一般都是不可靠的,尤其是在网络环境比较差的情况下,网络抖动很容易导致请求超时等异常情况,这时候就需要使用失 ...

  9. guava学习:guava集合类型-Bimap

    学习guava让我惊喜的第二个接口就是:Bimap BiMap是一种特殊的映射其保持映射,同时确保没有重复的值是存在于该映射和一个值可以安全地用于获取键背面的倒数映射. 最近开发过程中,经常会有这种根 ...

随机推荐

  1. (转)在 Windows 上安装Rabbit MQ 指南

    rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. Ra ...

  2. JavaScript学习笔记 -- 带参数arguments的函数的用法

    JavaScript函数有带参数与不带参数两种形式,不带参数情况如下: function myFunction() { alert('HelloWorld!') } 在这种类型的函数中,输出值是确定的 ...

  3. Android四大组件之一:Activity

    介绍:活动是最基本的Android组件之一,在应用程序中,一个活动通常就是一个用户界面,每一个活动都被实现为一个独立的类,并且从活动几类中继承, 活动类将会显示由View控件组成的用户接口,并对时间E ...

  4. Python深拷贝和浅拷贝

    1- Python引用计数[1] 1.1 引用计数机制 引用计数是计算机编程语言中的一种内存管理技术,是指将资源(可以是对象.内存或磁盘空间等等)的被引用次数保存起来,当被引用次数变为零时就将其释放的 ...

  5. Windows Phone 7 ListBox 列表项渐显加载动画学习笔记

    在wp7程序中,当程序功能越来越复杂时,性能问题是我们不得不考虑的一个问题.在聊天列表中,如果聊天项过多,而且项目UI组件足够复杂时, 我们不得不想尽办法让UI尽快加载.所以有一种可行的方案,就是像Q ...

  6. Code Review的一些典型内容

    如下是Code Review中一些典型的内容: 一.常规项: 1.代码能够工作么?它有没有实现预期的功能,逻辑是否正确等. 2.所有的代码是否简单易懂? 3.代码符合你所遵循的编程规范么?这通常包括大 ...

  7. JQuery在iframe中实现 点击后选中当前栏目的样式

    二级或者三级折叠菜单参考http://www.cnblogs.com/qigege/p/5178947.html <script type="text/javascript" ...

  8. c#配置log4net步骤

    1.引入添加log4net.dll引用 2.建立配置文件Log4Net.config(名字自定义).文件内容参考,输出的文件名称可更改 .运行是要放入到相应bin/debug(release) 目录 ...

  9. Windows 下 Composer 与 Laravel 4 的安装

    1.安装Composer Composer是PHP的依附经管对象之一,官方网站 http://getcomposer.org/ .它支撑多种安装体式格式,对于在win下做开辟的草来说,最便捷的体式格式 ...

  10. Cisco IOS Basic CLI Configuration : Switch Port Command

    Cisco IOS Basic CLI Configuration : Switch Port Command 1.  Basic Switch>en Switch#conf t Enter c ...