Guava -- 集合类 和 Guava Caches 1....什么是 Guava Guava 是 google 推出的一个第三方 java 库,用来代替 jdk 的一些公共操作,给我印象特别深的就是 Collection 的扩展和本地缓存的扩展这两个方面了。...所以今天也就主要来讲讲 guava 的 collection 和 caches 两方面。 2....依赖 使用 guava 非常简单,可以直接通过 maven 导入依赖: com.google.guava <artifactId...Caches guava caches 用来当本地缓存个人认为是一个非常不错的选择。 1.
来源:https://mrbird.cc/Guava-RateLimiter.html Google Guava提供的RateLimiter使用的是令牌桶算法。...Guava RateLimiter允许某次请求获取超出剩余令牌数的令牌,但是下一次请求将为此付出代价,一直等到令牌亏空补上。
Guava是什么 进入新公司就会接触一些新的东东,Guava就是一个,Guava是Google的一个开源类库,丰富了JDK的API,而且使用起来很方便,本文介绍的是Guava collect包下的一些常用工具类...项目主页:https://github.com/google/guava Maven依赖: com.google.guava guava</...可以简化: List strList = new ArrayList(); Collections.addAll(strList, "1", "2", "3"); 使用Guava...Guava可以创建一个完全不可变的集合,如下代码: List strList = ImmutableList.of("1", "2", "3"); 本文只是对Guava Collect的管中窥豹...,也仅仅介绍了List部分,更多请移步:https://github.com/google/guava/wiki。
根据科普中国的定义,缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中...
Guava使用 Guava Cache 是Google Fuava中的一个内存缓存模块,用于将数据缓存到JVM内存中。...提供了get、put封装操作,能够集成数据源 ;线程安全的缓存,与ConcurrentMap相似,但前者增加了更多的元素失效策略,后者只能显示的移除元素,相当于对已有集合框架类的一个扩充;Guava Cache...提供了多种基本的缓存回收方式监控缓存加载/命中情况通常,Guava缓存适用于以下情况: 愿意花费一些内存来提高速度。...转为类型名称这个类型数量比较多,有可能发生变动但不频繁的情景 比如端面需要根据填报志愿的专业code获取专业名称如果返回实体不带Name,每个调一次查询服务,或者一次性拿出所有名称循环对比取显然不是很优雅就可以用Guava...来实现 /** 引入如下依赖 com.google.guava guava</artifactId
简介 Predicate(断言,断定),是Guava中的一个基础接口,其内部只有一个方法boolean apply(T input),这个方法输入是一个泛型对象,输出是一个布尔值,非常简单,下面来看一下这个小东西能帮助我们做什么
ForwardingMap是什么? ForwardingMap 是一个装饰器 负责把所有的map操作转发到所代理的map。 操作转发是直接的,不经任何中间操作的。
/** * Guava的不可变集合用法 * * 创建对象的不可变集合是一种很好的防御性编程技巧; * Guava为所有JDK标准集合类型和Guava集合类型都提供了简单易用的不可变版本; *
Guava中Objects类提供了很多和Object类作用相同、效率更高的方法可供使用: 1.equal方法 使用Obejct的equals方法进行相等判断,例如: test.equals("test...Object的firstNonNull方法可以根据传入的两个参数来返回一个非Null的参数, view plain copy Objects.firstNonNull(null, "jack"); Guava
Guava中Objects类提供了很多和Object类相似方法可供使用: 1.equal方法 使用Object的equals方法进行相等判断,例如: test.equals("test"); 如果test....firstNonNull方法 Object的firstNonNull方法可以根据传入的两个参数来返回一个非Null的参数, Objects.firstNonNull(null, "jack"); Guava
Guava地址:https://github.com/google/guava 第一次接触我是在16年春github上,当时在找单机查缓存方法,google guava当初取名是因为JAVA的类库不好用...guava在还没做分布式处理上,单机单整合上大行其道。...集合[Collections] Guava对JDK集合的扩展,这是Guava最成熟和为人所知的部分 2.1 不可变集合: 用不变的集合进行防御性编程和性能提升。...缓存[Caches] Guava Cache:本地缓存实现,支持多种缓存过期策略 4. 函数式风格[Functional idioms] Guava的函数式支持可以显著简化代码,但请谨慎使用它 5....反射[Reflection] Guava 的 Java 反射机制工具类 1.Guava EventBus探讨 在设计模式中, 有一种叫做发布/订阅模式, 即某事件被发布, 订阅该事件的角色将自动更新。
并发是一个难题,但是可以通过使用强力简单的抽象来显著的简化,为了简化问题,guava扩展了Future接口,即 ListenableFuture (可以监听的Future)。...它返回一个常规的Future,guava提供了ListeningExecutorService接口,它返回ListenableFuture。...private String sex; private Integer id; } } 相对的,如果你想从基于FutureTask的API转换过来,Guava...为了避免这种情况,所有的guava的Future处理方法(有些从jdk来),有 *Async版本来安全的解开这个嵌套。
简介 Guava[ˈɡwɑːvə] 是 Google 开源的一个 Java 工具库。... com.google.guava guava 29.0-jre<...不变的;不可变的;不能变的 Guava是google的一个库,弥补了java语言的很多方面的不足,很多在java8中已有实现。...Guava提供了对JDK里标准集合类里的immutable版本的简单方便的实现,以及Guava自己的一些专门集合类的immutable实现。...注意:每个Guava immutable集合类的实现都拒绝null值。
Ordering类提供了一些链式的排序方法,相比JDK自带的排序方法更加简练、方便。 Ordering中有3种静态方法用于创建Ordering排序器: 根据上面...
1. Function接口,提供两个方法: apply方法: 可以自定义自己想实现的功能 1 @Nullable T apply(@Nullable F...
前言 Guava 包含我们在基于Java的项目中依赖的Google的几个核心库:集合,缓存,原语支持,并发库,通用批注,字符串处理,I / O等。...我们日常开发中 遇到最多的Exception 可能就是NullPointException 了,那么 guava 如何来优化这个问题呢? 避免使用null 粗心地使用null可能会导致各种错误。...(UseNullTest.java:51) at com.sf.guava.basic.UseNullTest.main(UseNullTest.java:24) :UseNullTest.main...true System.out.println(Objects.equal(str1, str2)); // 打印 true } 3.利用 比较链的方式 实现比较 package com.sf.guava.basic...other.zipCode, Ordering.natural().nullsLast()) .result(); } } 参数检查 package com.sf.guava.basic
EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现,在应用中可以处理一些异步任务。...LoggerFactory.getLogger(SimpleListener.class); /** * 一个简单的Listener方法 * @param event Guava...- Apple eat[Fruit{name=’apple’}]. 2018-06-03 16:55:32:INFO main com.guava.eventbus.listeners.FruitEaterListener...@7a0ac6e3 public void com.guava.eventbus.listeners.ExceptionListener.m3(java.lang.String) 2018...-06-03 18:16:25:INFO main com.guava.eventbus.listeners.ExceptionListener - Received event [Exception
(Guava Cache是单个应用运行时的本地缓存。它不把数据存放到文件或外部服务器。...如果这不符合你的需求,请尝试Memcached这类工具) 如果你的场景符合上述的每一条,Guava Cache就适合你。...Guava Cache提供了三种基本的缓存回收方式:基于容量回收、定时回收和基于引用回收。...其他特性 统计 CacheBuilder.recordStats()用来开启Guava Cache的统计功能。...如上所述,Guava Cache在某种意义上支持中断。
流量预热的做法 我们以Guava中的RateLimiter为例,看看流量预热在RateLimiter中是如何运作的,我们用下面的状态转换图来展示整个过程: 横坐标是令牌桶的当前容量,纵坐标是令牌发放速率
刷新:主动刷新方法LoadingCache.referesh(K) 信息统计:CacheBuilder.recordStats() 开启Guava Cache的统计功能。
领取专属 10元无门槛券
手把手带您无忧上云