Guava
文章平均质量分 75
Bwz_Learning
Change the world by program.
展开
-
Guava ListenableFuture实现异步非阻塞调用
为了保证系统响应迅速,需要寻找一种方法能够使调取接口能够异步执行,而Java正好提供了类似的方法,在java.util.concurrent中包含了Future相关的类,运用其中的一些类可以进行异步计算,以减少主线程的等待时间。比如启动一个main方法,main中又包含了若干个其它任务,在不使用Java future的情况下,main方法中的任务会同步阻塞执行,一个执行完成后,才能去执行另一个;如果转载 2017-06-18 10:52:35 · 4276 阅读 · 1 评论 -
重写Object常用的方法
在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法。 Guava也提供了提供了覆写这几个方法的工具类。equals方法的介绍equals是一个经常需要覆写的方法, 可以查看Object的equals方法注释, 对equals有几个性质的要求: 1. 自反性reflexive:任何非空引用x,x.equals(x原创 2017-06-13 20:01:04 · 1874 阅读 · 0 评论 -
Preconditions优雅的检验参数
在日常开发中,我们经常会对方法的输入参数做一些数据格式上的验证,以便保证方法能够按照正常流程执行下去。对于可预知的一些数据上的错误,我们一定要做事前检测和判断,来避免程序流程出错,而不是完全通过错误处理来保证流程正确执行,毕竟错误处理是比较消耗资源的方式。Guava类库中提供了一个作参数检查的工具类–Preconditions类, 该类可以大大地简化我们代码中对于参数的预判断和处理,让我们对方法输入原创 2017-06-13 20:23:49 · 539 阅读 · 0 评论 -
Guava中的TypeToken,解决泛型运行时类型擦除的问题
关于对于Type的理解泛型是一种类型 关于Type,是一个标示接口,该标示接口描述的意义是代表所有的类型public interface Type {}Type的分类Class<T>ParameterizedType 泛型......泛型的结构public Person<T> { }public interface ParameterizedType extends Type原创 2017-06-14 10:56:46 · 3354 阅读 · 1 评论 -
Throwables帮你抛出异常,处理异常
Guava类库中的Throwables提供了一些异常处理的静态方法,这些方法的从功能上分为两类,一类是帮你抛出异常,另外一类是帮你处理异常。也许你会想:为什么要帮我们处理异常呢?我们自己不会抛出异常吗?假定下面的方法是我们要调用的方法。public void doSomething() throws Throwable { //ignore method body}public void原创 2017-06-14 11:09:31 · 4355 阅读 · 1 评论 -
Guava中Splitter和Joiner的用法
字符串的分隔和连接是一个常用的操作.Guava提供了Spliiter和Joiner来帮助我们简化开发。Splitter的用法基本用法测试代码public static void main(String[] args) { String str = "a,b, c,,d"; Iterable<String> result = Splitter.on(',')/原创 2017-06-14 13:58:26 · 4305 阅读 · 0 评论 -
Guava中Cache的使用
缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的瓶颈出现。缓存的作用就是将这些来自不易的数据保存在内存中,当有其他线程或者客户端需要查询相同的数据资源时,直接从缓存的内存块中返回数原创 2017-06-14 14:39:20 · 2126 阅读 · 0 评论 -
Guava中的RateLimiter
昨天CodeReview的时候看到同时使用RateLimiter这个类用作QPS访问限制.学习一下这个类.RateLimiter是Guava的concurrent包下的一个用于限制访问频率的类.1.限流每个API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考虑限流来保证接口的可用性或者降级可用性.即接口也需要安装上保险丝,以防止非预期的请求对系统转载 2017-06-14 16:25:10 · 715 阅读 · 0 评论