guava
leadtoit
这个作者很懒,什么都没留下…
展开
-
guava笔记1-Optional,Preconditions,Ordering,Objects,ComparisonChain,Throwables
(1)Optional 标识可以为空的对象。 static <T> Optional<T> absent() 返回事实上的空对象。 static <T> Optional<T> of(T reference) 构造一个Optional对象。注意T不能为null,否则将抛异常。 static <T> Iterable&l...原创 2013-09-26 16:35:30 · 179 阅读 · 0 评论 -
guava笔记13-Math
Guava针对数学计算,提供了一些很好用的方法,用来完善jdk的math包的不足。据官方称:guava的math包具有下面优点:(1)充分测试过,bug少(2)优化过,性能很好(3)可读性高 Guava的math包用起来就很简单了,都是些静态方法,用的多自然就记得了。概况的说,主要提供了IntMath,IntegerMath,BigIntegerMath,Double...原创 2013-10-23 09:28:10 · 168 阅读 · 0 评论 -
guava笔记12-EventBus
JDK从1.0开始就存在Observer和Observable,可以用来完成生产者/消费者这样的需求。其实也是观察者模式的实现。 Guava使用EventBus来实现类似的功能,但是用起来比Observer更方便。直接拿代码来讲解吧。//定义消息实体class EventObj{private String info;public EventObj(String i...原创 2013-10-23 09:28:03 · 93 阅读 · 0 评论 -
guava笔记11-Hashing
一.Guava提供了一些方法帮助我们生成hash值。主要有下面几个帮助类:HashFunction: hash函数,可以用于创建Hasher对象Hashing:定义了一些hash函数,主要有md5(),murmur3_128(),murmur3_32(),sha1(),sha256(),sha512(),goodFastHash(int bits)。Hasher:计算hash值...原创 2013-10-22 13:41:29 · 419 阅读 · 0 评论 -
guava笔记10-IO
Java中使用IO Stream直接操作文件的,但是当我们使用这些的时候,往往要经过很多步骤,比如打开文件,关闭文件。很多时候,我们会记得打开文件,但是最后还是一个close()过程,我们总是容易忽略。 一.文件操作Util类Guava建议我们定义所有的IO实体时都使用InputSupplier和OutputSupplier进行包装,这样,我们就不用考虑那么多事情了,简化了操作。...原创 2013-10-22 13:41:21 · 169 阅读 · 0 评论 -
guava笔记7-Networking
todo原创 2013-10-22 13:41:08 · 111 阅读 · 0 评论 -
guava笔记9-Ranges
很多时候,我们需要表示一个数据范围,可能会这样传参数:inScope(int min, int max, boolean minInclude, boolean maxInclude)这样的代码看起来很繁琐。Guava提供了一种数据结构叫做Range,正好用于表达这样一种数据。 Range提供了一些静态工厂方法,用于构造各种是否包含边界的范围:Notation...原创 2013-10-22 13:38:53 · 93 阅读 · 0 评论 -
guava笔记8-Primitives
Java有8中基本数据类型:byte ,short,int,long,float,double,char,boolean。Java并不存在unsigned类型,guava新定义了UnsignedInteger 和 UnsignedLong 分别表示int和long的无符号类型。在com.google.common.primitives中提供了一些util类来对基本类型进行操作。 b...原创 2013-10-22 13:38:42 · 299 阅读 · 0 评论 -
guava笔记6-Strings
Guava对String提供了四个工具: (1)Joiner:将数组或者集合元素用指定的分隔符进行连接成一个字符串。Joiner.on(",").join(Arrays.asList(1, 5, 7)); // returns "1,5,7"Joiner.on("; ").skipNulls().join("Harry", null, "Ron", "Hermione");方法原创 2013-10-21 16:22:15 · 118 阅读 · 0 评论 -
guava笔记5-并发
一. ListenableFuture是用来增强Future的功能的。我们知道Future表示一个异步计算任务,当任务完成时可以得到计算结果。如果我们希望一旦计算完成就拿到结果展示给用户或者做另外的计算,就必须使用另一个线程不断的查询计算状态。这样做,不断代码复杂,而且效率低下。ListenableFuture,顾名思义,就是可以监听的Future。我们可以为ListenableFut...原创 2013-10-21 16:21:27 · 197 阅读 · 0 评论 -
guava笔记4-Function,Predicate
Function和Predicate可以说是Guava最好用的工具了。Function用于把一种类型的对象转化为另一种类型的对象。Predicate用于判断某个对象是否符合一定条件。单用Function和Predicate可能还看不出他的强大,但是配合集合类,就可以极大地简化代码编写。Function可以配合集合的transform方法,来将一个集合转换为另一个集合。FluentIterabl...原创 2013-10-21 16:20:48 · 351 阅读 · 0 评论 -
guava笔记3-cache
缓存的使用有多种方式,可以使用开源的缓存框架,如ehcache,JCS,cache4j等。Guava也帮我们实现了一个小巧而实用的缓存框架。如果不使用缓存框架,自己实现缓存,很多人首先想到的就是声明一个static的map对象。Guava的缓存框架其实就是这么做的,所有理解起来非常容易。1. 使用CacheLoader构造LoadingCacheCacheLoader有个抽象方法load...原创 2013-10-21 16:19:49 · 157 阅读 · 0 评论 -
guava笔记2-集合
(1)构造不可变集合不可变集合的优点:1. 避免别人调用时更改集合内容2. 线程安全:因为是只读的,所以多线程条件下是安全的3. 不必考虑集合变化,所以会比可变的集合更加的有效率4. 可以作为常量使用JDK里面Collections.unmodifiableXXX也可以得到不可变的集合,但是是有缺陷的:1. api不友好,用起来麻烦2. 不安全的,unmodifiableXXX返回的集合确...原创 2013-10-21 16:15:28 · 181 阅读 · 0 评论 -
guava笔记14-Reflection
todo原创 2013-10-23 09:28:15 · 199 阅读 · 0 评论