-
Guava进修笔记:Google Guava 类库简介
添加时间:2013-6-11 点击量:Guava 是一个 Google 的基于java1.6的类库凑集的扩大项目,包含 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码加倍优雅,加倍简洁,让你工作加倍轻松愉悦。下面我们就开启优雅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 反射机制对象类。
所有随风而逝的都属于昨天的,所有历经风雨留下来的才是面向未来的。—— 玛格丽特·米切尔 《飘》