# java8&guava&连接器&任务分发及执行
本文分四部分介绍:
分别是
1.java8
2.guava
3.presto连接器
4.presto任务分发及执行的细节
一 java8
1.1 lamda
1.2函数式接口
1.3方法引用
1.4stream
1.5Options
1.6并发
二 guava
1.1基本工具
option
check
Objects 的equal toString hash compare简化
Throwables.propagateIfInstanceOf(t, IOException.class);
1.2集合
2.1 不可变集合: 用不变的集合进行防御性编程和性能提升。
2.2 新集合类型: multisets, multimaps, tables, bidirectional maps等
2.3 强大的集合工具类: 提供java.util.Collections中没有的集合工具
2.4 扩展工具类:让实现和扩展集合类变得更容易,比如创建Collection的装饰器,或实现迭代器
1.3缓存
01
LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()
02
.maximumSize(1000)
03
.expireAfterWrite(10, TimeUnit.MINUTES)
04
.removalListener(MY_LISTENER)
05
.build(
06
new CacheLoader<Key, Graph>() {
07
public Graph load(Key key) throws AnyException {
08
return createExpensiveGraph(key);
09
}
10
});
1.4函数式风格
…
1.5并发
ListenableFuture
Service框架
1.6字符串
Joiner,Spliter
1.7反射
Reflection
1.8EventBus
用于事件分发
1.9区间
[]
1.10散列
Hash包