Guava一些高效类的使用实践

guava是Google的一个强大的工具包,目前已经更新到版本22 https://github.com/google/guava,一直有断断续续的用过一些方法,但是没有系统的撸一遍所有功能

 

今天参考并发编程网记录一些高效的工具方法 http://ifeve.com/google-guava/

 

1 Optional表示可能为null的引用,用存在或者缺失来表示null或者非null,get(),or(),orNull()是三种不同处理null的返回方法

 

2 Preconditions可以用来做一些前置检查,非常时候参数非空校验

 

3 Object的toStringHelper 在重定义tostring的时候非常有效

 

4 使用Ordering来快速排序,可以构建一个ordering对象并调用max()或者min()

 

5 使用不可变集合ImmutableXXX,创建的方法 有of(),copyOf()或者builder()

 

6 Guava的新集合有Multiset,Multimap,BiMap,Table,ClassToInstanceMap,RangeSet,RangeMap ,每一个都是神器啊

 

7 Guava提供了集合类的加强类,比如Collections2,XXs等

 

8 LoadingCache可以用来做缓存,使用CacheBuilder来构造

 

9 并发编程上,ListenableFuture可以高效的替换Future

 

10 Service接口可以用来封装一个服务对象的状态

 

11 字符串处理上增加了几个处理类,Joiner,Splitter,CharMatcher,Charsets,CaseFormat

 

12 Guava对原生类型提供了包装的工具类,一般是Java原生包装类后面加一个s

 

13 Guava提供了Range表示区间

 

14 Guava的字符流和字节流的处理类在ByteStreams 和CharStreams中。可读类为 ByteSource CharSource 可写类为 ByteSink CharSink

 

15 com.google.common.hash包提供了散列的操作类HashFunction,Hasher,Funnel,HashCode,BloomFilter

 

16Guava提供的运算工具类分别叫做IntMath、LongMath和BigIntegerMath,DoubleMath

 

17 反射技术上,Guava提供了TypeToken,Invokable,Reflection,ClassPath几个类

赞 (0) 评论 分享 ()