1. annotations
4个声明式的注解
GwtCompatible--google web toolkit 兼容
GwtIncompatible -- 不兼容

2.base
空值的判断、驼峰转换、大小写转换、字符集、原始类默认值、枚举操作、比较(返回true /false)、(软、弱引用)、
Function函数编程(实际上是对象,应该独立一块知识点)、String操作、校验(抛异常)

3.cache
利用jdk实现的cache,有“有则取,否则加载” 自动清除数据、多种清除算法、清除回调功能。
用CacheBuilder.newBuilder()
重要的类LocalCache CacheLoader LoadingCache
CacheBuilder.recordStats()用来开启Guava Cache的统计功能。统计打开后,Cache.stats()方法会返回对象以提供如下统计信息:
hitRate():缓存命中率;
averageLoadPenalty():加载新值的平均时间,单位为纳秒;
evictionCount():缓存项被回收的总数,不包括显式清除

4.collect
这是一个很大的包。包含各种集合的抽象类。如BiMap ,Multimap SortedMultiMap.
集合的操作类

5.escape
Escapers.Builder builder = Escapers.builder();
builder.addEscape('c',"b");
builder.build().escape("abc");// abb

6.eventbus
设计模式之观察者模式的实现。声明式编程的手法,用@Subscribe标注需要监听的方法,
代码用了反射(对方法的反射)实现调用订阅方法。

7.graph
数学上图的概念。(不明白用处)

8.hash
提供各个类型求hash的方法

9.html
就一个类HtmlEscapers,提供html的转义。感觉有用!

10.io
JDK的io已经够多了,Guava在来凑一脚

11.net
网络地址和端口,已经URL的转义

12.primitives
对8个原始类型的比较,判断,拼接

13.reflect
反射的各种方法封装。Reflection的newProxy()方法很好。

14.util
重点。
Future 的各种封装。
异步的Callable ,Function。
对Double,DoubleArray,LongMap的原子化封装类。
有名的RateLimiter

Service固定服务的生命周期NEW STARTING RUNNING STOPPING TERMINATED FAILED,但是和通常的理解不同的是,
guava约定 TERMINATED FAILED 是最终状态,无法在转变成其他状态。

ListenableFuture 对 JDK的Future的优化,实现异步获取返回结果
2.1 装饰者模式获得ListeningExecutorService。
2.2 ListenableFuture listenableFuture = pool.submit()获得ListenableFuture。
2.3 Futures.addCallback()设置回调函数。


15.xml
就一个类XmlEscapers,提供html的转义。和上面的html包同样套路。
03-13 03:58