guava
文章平均质量分 86
colie_li
coding
展开
-
Guava之Preconditions
Preconditions里面的方法: 1 .checkArgument(boolean) : 功能描述:检查boolean是否为真。 用作方法中检查参数 失败时抛出的异常类型: IllegalArgumentException 2.checkNotNull(T): 功能描述:检查value不为null, 直接返回value; 失败时抛出的异常原创 2014-11-25 15:14:40 · 634 阅读 · 0 评论 -
Lists.transform注意问题
public class ListsTransformTest { public PersonVo personDbToVo(PersonDb personDb) { Preconditions.checkNotNull(personDb, "[PersonDbToVo]personDb为null"); PersonVo personVo = new Pe原创 2018-01-22 20:42:20 · 1642 阅读 · 0 评论 -
GuavaCache简介(一)
前言在多线程高并发场景中往往是离不开cache的,需要根据不同的应用场景来需要选择不同的cache,比如分布式缓存如redis、memcached,还有本地(进程内)缓存如ehcache、GuavaCache。之前用spring cache的时候集成的是ehcache,但接触到GuavaCache之后,被它的简单、强大、及轻量级所吸引。它不需要配置文件,使用起来和ConcurrentHas转载 2017-10-24 17:37:11 · 212 阅读 · 0 评论 -
guava处理字符串与List之间,字符串与map之间的转换
import static org.junit.Assert.*;import java.util.List;import java.util.Map;import org.junit.Test;import com.google.common.base.Joiner;import com.google.common.base.Splitter;import com.google转载 2016-09-07 20:05:33 · 573 阅读 · 0 评论 -
guava中的ListenableFuture
ListenableFuture还有其他几种内置实现:SettableFuture:不需要实现一个方法来计算返回值,而只需要返回一个固定值来做为返回值,可以通过程序设置此Future的返回值或者异常信息CheckedFuture: 这是一个继承自ListenableFuture接口,他提供了checkedGet()方法,此方法在Future执行发生异常时,可以抛出指定类型的异常。S原创 2017-04-28 15:58:55 · 1271 阅读 · 0 评论 -
浅析ListenableFuture使用场景及介绍示例
ListenableFuture是对原有Future的增强,可以用于监听Future任务的执行状况,是执行成功还是执行失败,并提供响应的接口用于对不同结果的处理。适用场景:1、如果一个主任务开始执行,然后需要执行各个小任务,并且需要等待返回结果,统一返回给前端,此时Future和ListenableFuture作用几乎差不多,都是通过get()方法阻塞等待每个任务执行完毕返回。原创 2017-04-28 15:02:43 · 9862 阅读 · 1 评论 -
RateLimiter接口限流
在开发对外接口时,为了保证系统的安全性和可靠性,往往需要限制接口的调用频率,即1s允许调用的次数,使用guava的ratelimiter比较合适。对于限流一般的算法采用是:楼桶算法和令牌桶算法。 1、漏桶算法 漏桶(Leaky Bucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率),当水流入速度过大会直接溢出(访问原创 2017-04-28 14:39:28 · 2551 阅读 · 2 评论 -
Google Guava之--cache
Google Guava包含了Google的Java项目许多依赖的库,如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。本文只介绍其中的缓存部分转载 2016-04-15 18:34:17 · 543 阅读 · 0 评论 -
guava处理字符串与List之间,字符串与map之间的转换
import static org.junit.Assert.*;import java.util.List;import java.util.Map;import org.junit.Test;import com.google.common.base.Joiner;import com.google.common.base.Splitter;import com.google转载 2016-04-27 18:31:00 · 1499 阅读 · 0 评论 -
Guava Collections使用介绍[超级强大]
功能列举可以说 Java Collections Framework 满足了我们大多数情况下使用集合的要求,但是当遇到一些特殊的情况我们的代码会比较冗长,比较容易出错。Guava Collections 可以帮助你的代码更简短精炼,更重要是它增强了代码的可读性。看看 Guava Collections 为我们做了哪些很酷的事情。Immutable Collections: 还在转载 2014-12-24 15:45:37 · 2345 阅读 · 0 评论 -
Guva API
1,大纲让我们来熟悉瓜娃,并体验下它的一些API,分成如下几个部分:IntroductionGuava Collection APIGuava Basic UtilitiesIO APICache API2,为神马选择瓜娃?瓜娃是java API蛋糕上的冰激凌(精华)高效设计良好的API.被google的开发者设计,实现和使用。遵循高效的java这本书的好的语法实践。使代码转载 2014-12-23 11:42:44 · 804 阅读 · 0 评论 -
Google Guava 类库简介
Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦。下面我原创 2014-11-25 15:19:57 · 557 阅读 · 0 评论 -
全面解析RateLimiter
限流每个API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考虑限流来保证接口的可用性或者降级可用性.即接口也需要安装上保险丝,以防止非预期的请求对系统压力过大而引起的系统瘫痪.通常的策略就是拒绝多余的访问,或者让多余的访问排队等待服务,或者引流.如果要准确的控制QPS,简单的做法是维护一个单位时间内的Counter,如判断单位时间已经过去,则将Counter重置零.此做法原创 2018-01-17 16:07:04 · 24640 阅读 · 1 评论