Google Core Libraries for Java 1.6+ Guava学习-第一篇:总览

来源:互联网 发布:萧然问政网络平台 编辑:程序博客网 时间:2024/06/10 10:17

User Guide

Guava 项目包含了很多Google在开发java应用时用到的核心工具包,其中包括:collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等,这些包每天都在被google的工程师使用,应用在日常产品和服务中。

但是通过Javadoc来学习这些库并不是一个最有效的方式,所以再次我们提供一个可读性好的方式来解读Guava的一些方便而强大的功能。

    类库使用手册:

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

    1. Using and avoiding null:null 有歧义, 会产生令人费解的错误, 反正他总是让人不爽。很多 Guava 的工具类在遇到 null 时会直接拒绝或出错,而不是默默地接受他们。
    2. Preconditions:更容易的对你的方法进行测试。
    3. Common object methods: 简化了Object常用方法的实现, 如 hashCode() 和 toString()。
    4. Ordering: 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 反射机制工具类。

  • Tips: Getting your application working the way you want it to with Guava.
    • Philosophy: Guava是什么?我们使用Guava来达到什么目标.
    • Using Guava in your build, Guava和maven,Gradle一起配合工作.
    • Using ProGuard 避免你导入Guava Jar里你用不到的功能.
    • Apache Commons equivalents, 帮你从 Apache Commons Collections里转移到Guava.
    • Compatibility, Guava 版本的差异.
    • Idea Graveyard,一些没有被采纳的功能.
    • Friends, 一些我们喜欢的开源项目.

原文地址:https://code.google.com/p/guava-libraries/wiki/GuavaExplained


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电煎饼锅烧黑了怎么办 电高压锅不加热怎么办 食品流通证到期怎么办 喝了奶茶睡不着怎么办 喝咖啡晚上睡不着怎么办 煮米饭水放少了怎么办 蜗牛睡眠两个人怎么办 军用水壶变形了怎么办 鱼缸过滤效果不好怎么办? 煮水壶有水垢怎么办 猫咪喝了咖啡怎么办 军用水壶凹了怎么办 新电水壶有味道怎么办 猫夏天不喝水怎么办 军用水壶瘪了怎么办 木头壶盖有异味怎么办 挎包拉链坏了怎么办 斜挎包没有拉链怎么办 树脂补牙没抛光怎么办 猪拉稀不吃食怎么办 亚麻衣服刺皮肤怎么办 自热米饭不熟怎么办 孕妇用了微波炉怎么办 蛋挞变软了怎么办 外卖炒面坨了怎么办 手机发热充电慢怎么办 饭盒盖子松了怎么办 饭盒盖子盖不住怎么办 饭盒盖子吸不住怎么办 饭盒盖子变形了怎么办 饭盒盖子凹进去怎么办 饭盒盖吸不住怎么办 饭盒微波炉加热后打不开怎么办 微波炉加热饭盒打不开怎么办 塑料饭盒加热后打不开怎么办 真空锅锅盖打不开怎么办 玻璃真空水壶打不开怎么办 保温饭盒盖子打不开怎么办 饭盒盖章松了怎么办 电压力锅卡住了怎么办 铁的饭盒打不开怎么办