Guava工具类

Guava工具类

简介

Guava 是Google基于java1.6开发的工具扩展库。

主要包括:

annotations 普通注解类型
base 基本工具类库和接口
cache 缓存工具包,非常简单易用且功能强大的JVM内缓存
collect 带泛型的集合接口扩展和实现,以及工具类,这里你会发现很多好玩的集合
eventbus 发布订阅风格的事件总线
graph 图标
hash 哈希工具包
io I/O工具包
math 原始算术类型和超大数的运算工具包
net 网络工具包
primitives 八种原始类型和无符号类型的静态工具包
reflect 反射工具包
concurrent 多线程工具包(废掉了)

主要功能和用法


   com.google.guava
   guava
   23.0

基本工具 [Basic utilities]

1)使用和避免为NULL
null是模棱两可的,会引起令人困惑的错误,有些时候它让人很不舒服。很多Guava工具类用快速失败拒绝null值,而不是盲目地接受

2)前置条件
让方法中的条件检查更简单

3)常见Object对象
简化Object方法实现,如hashCode()和toString()

4)排序

5)Throwables
简化了异常和错误的传播与检查

集合[Collections]

不可变集合: 用不变的集合进行防御性编程和性能提升。
新集合类型: multisets, multimaps, tables, bidirectional maps等。
强大的集合工具类: 提供java.util.Collections中没有的集合工具。
让实现和扩展集合类变得更容易,比如创建Collection的装饰器,或实现迭代器。

缓存

Guava Cache:本地缓存实现,支持多种缓存过期策略

//初始化 Guava内存  LRU算法
private static LoadingCache localCache = CacheBuilder.newBuilder()
                                                                 .initialCapacity(1000)
                                                                 .maximumSize(10000)
                                                                 .expireAfterAccess(12, TimeUnit.HOURS)
                                                                 .build(new CacheLoader() {
                                                                     //默认的数据加载实现,当调用get取值的时候,如果key没有对应的值,就调用这个方法进行加载
                                                                     @Override
                                                                     public String load(String s) throws Exception {
                                                                         return "null";
                                                                     }
                                                                 });

public static void setKey(String key, String value) {
    localCache.put(key, value);
}

public static String getKey(String key) {
    String value = null;
    try {
        value = localCache.get(key);
        if ("null".equals(value)) {
            return null;
        }
    } catch (ExecutionException e) {
        log.error("localCache get error", e);
    }
    return null;
}

字符串处理[Strings]

非常有用的字符串工具,包括分割、连接、填充等操作

原生类型[Primitives]

扩展 JDK 未提供的原生类型(如int、char)操作, 包括某些类型的无符号形式

区间[Ranges]

可比较类型的区间API,包括连续和离散类型

I/O

简化I/O尤其是I/O流和文件的操作,针对Java5和6版本

散列[Hash]

提供比Object.hashCode()更复杂的散列实现,并提供布鲁姆过滤器的实现

事件总线[EventBus]

发布-订阅模式的组件通信,但组件不需要显式地注册到其他组件中

数学运算[Math]

优化的、充分测试的数学工具类

反射[Reflection]

Guava 的 Java 反射机制工具类

你可能感兴趣的:(Guava工具类)