ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Guava——概述

Guava——概述 Guava概述1、概述1.1、Guava的优点1.2、Guava包介绍2、Guava 的使用2.1、引入2.2、基本工具 [Basic utilities]2.3、集合 [Collections]2.4、缓存 [Caches]2.5、函数式编程 [Functional idioms]2.6、并发 [Concurrency]2.7、字符串处理 [Strings]2.8、原生类型 [Primitives]2.9、区间 [Ranges]2.10、I/O2.11、散列 [Hash]2.12、事件总线 [EventBus]2.13、数学运算 [Math]2.14、反射 [Reflection]1、概述Guava 是一个 Google 开发的基于 Java 的类库集合的扩展项目包括集合、缓存、原生类型支持、并发库、通用注解、字符串处理、I/O 和验证的实用方法等等。1.1、Guava的优点标准化 - Guava 库是由谷歌托管。高效 - 可靠快速和有效的扩展 JAVA 标准库。优化 - Guava 库经过高度的优化。1.2、Guava包介绍Guava 项目托管在 Github 上可以使用 git clone https://github.com/google/guava.git 下载 Guava 源码从源码可以看到Guava 主要有下面的几个包com.google.common.annotations普通注解类型com.google.common.base基本工具类库和接口com.google.common.cache缓存工具包非常简单易用且功能强大的JVM内缓存com.google.common.collect带泛型的集合接口扩展和实现以及工具类com.google.common.escape转义工具com.google.common.eventbus发布订阅风格的事件总线com.google.common.graph处理基于图的数据结构com.google.common.hash 哈希工具包com.google.common.htmlHtml字符串转义com.google.common.ioI/O工具包com.google.common.math原始算术类型和超大数的运算工具包com.google.common.net网络工具包com.google.common.primitives八种原始类型和无符号类型的静态工具包com.google.common.reflect反射工具包com.google.common.util.concurrent多线程工具com.google.common.xmlxml字符串转义2、Guava 的使用2.1、引入dependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion33.0.0-jre/version/dependencyJDK 版本兼容-jre 后缀适用于标准的 Java 8 及以上运行环境推荐。-android 后缀如果项目需要兼容 Android 或极低版本的 Java 环境可将版本号替换为 33.0.0-android。版本更新建议如果使用的是 Java 8 或更高版本建议直接使用 33.x 或更新的稳定版本以获得最佳性能与安全补丁。2.2、基本工具 [Basic utilities]让使用Java语言变得更舒适。使用和避免 nullnull 有语言歧义会产生令人费解的错误反正他总是让人不爽。很多 Guava 的工具类在遇到 null 时会直接拒绝或出错而不是默默地接受他们。前置条件让方法中的条件检查更简单。常见 Object 方法简化了 Object 常用方法的实现如 hashCode() 和 toString()。排序Guava 强大的 “fluent Comparator” 比较器提供多关键字排序。Throwables简化了异常检查和错误传播。2.3、集合 [Collections]Guava 对 JDK 集合的扩展这是 Guava 最成熟和为人所知的部分。Immutable collections不可变集合用不变的集合进行防御性编程和性能提升。New collection types新集合类型JDK collections 没有的一些集合类型主要有multisetsmultimapstablesbidirectional maps 等。Powerful collection utilities强大的集合工具类提供 java.util.Collections 中未包含的集合工具。Extension utilities扩展工具类让实现和扩展集合类变得更容易比如创建 Collection 的装饰器或实现迭代器。2.4、缓存 [Caches]Guava Cache本地缓存可以很方便的操作缓存对象支持多种缓存过期策略。2.5、函数式编程 [Functional idioms]Guava 实现了 Java 的函数式编程可以显著简化代码。2.6、并发 [Concurrency]强大而简单的抽象让编写正确的并发代码更简单。Listenable Future可监听的 FutureFutures用于异步完成的回调。Service 框架抽象可开启和关闭的服务帮助你维护服务的状态逻辑。2.7、字符串处理 [Strings]一个非常非常有用的字符串工具类提供 splitting分割joining连接padding填充等操作。2.8、原生类型 [Primitives]扩展 JDK 中未提供的对原生类型如 int、char 等的操作包括某些类型的无符号的变量。2.9、区间 [Ranges]Guava 提供的一个强大的 Comparable可比较类型的区间 API包括连续和离散类型。2.10、I/O简化 I/O 操作特别是对 I/O 流和文件的操作针对 Java5和6版本。2.11、散列 [Hash]提供比 Object.hashCode() 更复杂的散列hash实现提供 Bloom filters布隆过滤器的实现。2.12、事件总线 [EventBus]基于发布-订阅模式的组件通信但是不需要显式地注册在委托对象中。2.13、数学运算 [Math]优化的、充分测试的数学运算工具类。2.14、反射 [Reflection]Guava 的 Java 反射机制工具类。
返回列表