用户指南

Guava包含Google在Java项目中用到的一些核心库:collections, caching, primitives support, concurrency 库, common annotations, string 处理, I/O等。Google工程师们在开发中每天都使用这些工具。

但是,要学习如何用好这些库,通读Javadoc并不是最有效的方法。在这里,我们尝试用一种可读性强、轻松愉快的方法来介绍Guava中最常用和最强大的特性。

这个wiki还在编写过程中,一些部分可能还未完成。

  • Basic utilities: 让编写Java更愉快
    • 使用和避免使用nullnull 含义模糊,可能引起莫名其妙的error,而且就是让人讨厌。很多Guava utilities拒绝盲目使用null。
    • 前置条件(preconditions): 更方便地测试方法的前置条件。
    • Common object方法: 简化Object类方法的实现,如hashCode()和toString()。
    • 排序: Guava强大的"fluent Comparator"类.
    • 抛出异常: 简化exception和error的传递和检验。
  • Collections: Guava对JDK collections ecosystem的扩展。这是Guava最成熟和最常用的部分之一。
    • 不可变collection,支持防御性编程、常量集合使用,也可以提高效率。
    • 新的collection类型,补充JDK collection不够完善的应用场景:multisets, multimaps, tables, bidirectional maps等。
    • 强大的collection utilities,补充java.util.Collections缺乏的常用操作。
    • Extension utilities:要写Collection decorator?实现Iterator接口?我们让这些更方便。
  • Caches: 正确实现的本地缓存,支持多种多样的有效期(expiration)设定。
  • Functional idioms: 谨慎使用Guava的functional idiom可以显著简化代码。
  • Concurrency: 强大而简洁的抽象结构让编写并发代码更简单。
    • ListenableFuture: Future模式,结束时调用回调函数。
    • Service: 只需指定开启和终止,替你管理其他复杂的状态逻辑。
  • Strings: 一些极其有用的string utilities:splitting, joining, padding等。
  • Primitives: 补充JDK中没有的,如int和char等基本类型的操作。包括一些类型的unsigned变体。
  • Ranges: Guava's有强大的API来处理Comparable类型的范围问题,包括值为连续和值为离散的类型。
  • I/O: 简化I/O操作,尤其是在I/O流和文件上。支持Java 5和6。
  • Hashing: 比Object.hashCode()更高级的hash工具,包括Bloom filter。
  • EventBus: Publish-subscribe-style的组件交流,无需组件间显式注册。
  • Math: JDK中没有的,优化后的、彻底测试过的math utilities。
  • Reflection: 提供Java的反射功能的Guava utilities。
  • 小提示: 让你得心应手地运用Guava。
    • 理念: Guava是什么/不是什么,及我们的目标。
    • 在你的build中使用Guava,如Maven, Gradle等管理工具。
    • 使用ProGuard来避免在你的JAR中加入冗余的Guava部件。
    • Apache Commons equivalents,帮助你翻译使用了Apache Commons Collections的代码。
    • 兼容性:Guava各个版本的更新细节。
    • 提议坟场,被彻底否决的特性提议。
    • 友情链接,我们欣赏的其他开源项目。

注意: 要讨论本wiki的内容,请发邮件至guava-discuss mailing list。

中文翻译自Guava官方文档:GuavaExplained - Introduction

[Guava官方文档翻译] 1.Guava简介 (Introduction)的更多相关文章

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

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

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

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

  3. [Guava官方文档翻译] 2.使用和避免使用null (Using And Avoiding Null Explained)

    本文地址:http://www.cnblogs.com/hamhog/p/3536647.html "null很恶心." -Doug Lea "这是一个令我追悔莫及的错误 ...

  4. [Guava官方文档翻译] 6. 用Guava辅助Throwable异常处理 (Throwables Explained)

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

  5. [Guava官方文档翻译] 4. 使用Guava Ordering排序 (Ordering Explained)

    本文地址:http://www.cnblogs.com/hamhog/p/3537233.html 示例 assertTrue(byLengthOrdering.reverse().isOrdered ...

  6. [Guava官方文档翻译] 3. 前置条件检查(Preconditions Explained)

    本文地址:http://www.cnblogs.com/hamhog/p/3536964.html 前置条件检查 Guava提供了一些检查前置条件的utilities.我们强烈建议静态import这些 ...

  7. Guava文档翻译之 Guava简介

    用户指南 User Guide Guava项目包括了一些Google的核心库,是我们在基于Java的项目中所依赖的,这些库包括:集合,缓存,对基本类型的支持,并发库,通用的注解,字符串处理,I/O,等 ...

  8. [转]Google Guava官方教程(中文版)

    Google Guava官方教程(中文版) http://ifeve.com/google-guava/

  9. Google Guava官方教程(中文版)

    Google Guava官方教程(中文版) 原文链接  译文链接 译者: 沈义扬,罗立树,何一昕,武祖  校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库, ...

随机推荐

  1. SQLite使用教程10 运算符

    SQLite 运算符 SQLite 运算符是什么? 运算符是一个保留字或字符,主要用于 SQLite 语句的 WHERE 子句中执行操作,如比较和算术运算. 运算符用于指定 SQLite 语句中的条件 ...

  2. git在windows下clone、pull或者push内存溢出的解决办法

    发现国内使用git来真正管理源码的人不多,特别是大数据量的源码,今天使用git clone android的源码时突然出现remote out of memery,解决办法: git config - ...

  3. Advanced Configuration Tricks

    Advanced Configuration Tricks Configuration of zend-mvc applications happens in several steps: Initi ...

  4. VIM7.3中文手册

    INDEX *index.txt*     For Vim version 7.3.  最近更新: 2010年7月 VIM 参考手册    by Bram Moolenaar 译者: Willis h ...

  5. OC中字典:NSDictionary类是如何使用的

    字典就是关键字及其定义(描述)的集合.Cocoa中的实现字典的集合NSDictionary在给定的关键字(通常是一个NSString)下存储一个数值(可以是任何类型的对象).然后你就可以用这个关键字来 ...

  6. Number of failed login attempts exceeds threshold value

    OEM发出好多告警,Number of failed login attempts exceeds threshold value. profile当前配置10次失败就会锁定user 查看下,dba_ ...

  7. oracle学习总结4

    1:三范式a:一张表里必须要有主键,列不可分.b:如果一张表里面,两个字段作为主键,那么其他字段不能够部分依赖这两个字段. 2:pl sql:Procedural language(过程语言) 写一个 ...

  8. 【转】MySQL数据库主从同步管理

    MYSQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的管理也就显得非常重要,新手往往在出现主从同步错误的时候不知道如何入手,这篇文章就是根据自己的经验来详细叙 ...

  9. tcl/tk

    http://blog.csdn.net/dulixin/article/category/365058 http://blog.csdn.net/dulixin/article/category/3 ...

  10. CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)

    第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了. 很多企业都表示出他们 ...