Google生产的工具类,目的是简化开发
Optional - 用来表示可能为null的T类型引用(增强null的处理)
Optional.of - 返回要用作参数Optional类的实例。检查传递的值是否为null。(null报错)
Optional.get - 获取输入存储在Optional 类的值。
使用Optional类,可以方便地查看调用者方法来传递参数正确与否。
Guava字符串:Joiner.on(pattern).join(List<string>); 将list以pattern的形式连接起来
使用multimap<k, v> 代替 map<k, collections<v>>。
Lists.newArrayList可以像创建数组一样创建ArrayList
guava缓存
http://ifeve.com/google-guava-cachesexplained/
http://bylijinnan.iteye.com/blog/2225074
https://blog.csdn.net/u012859681/article/details/75220605
Guava Cache是一个全内存的本地缓存实现,它提供了线程安全的实现机制。
缓存接口为 LoadingCache<T1, T2>,使用CacheBuilder来建立新的缓存, 需要设置的参数包括:并发级别,缓存过期时间,初始容量,最大容量,设置是否需要记录状态,设置移除缓存的监听器,最后是build方法。
build方法制定CacheLoader,通过重写load方法,实现当缓存不存在的时候如何进行加载。
缓存相关方法:
ImmutableMap<K, V> getAllPresent(Iterable<?> keys) 一次获得多个键的缓存值
put和putAll方法向缓存中添加一个或者多个缓存项
invalidate 和 invalidateAll方法从缓存中移除缓存项
asMap()方法获得缓存数据的ConcurrentMap<K, V>快照
cleanUp()清空缓存
refresh(Key) 刷新缓存,即重新取缓存数据,更新缓存
getUnchecked 如果为null 也不抛异常, 如果已存在,直接返回, 否则执行load方法 返回。

网友评论