首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Guava使用

Guava使用 Guava Cache 是Google Fuava中的一个内存缓存模块,用于将数据缓存到JVM内存中。...提供了get、put封装操作,能够集成数据源 ;线程安全的缓存,与ConcurrentMap相似,但前者增加了更多的元素失效策略,后者只能显示的移除元素,相当于对已有集合框架类的一个扩充;Guava Cache...提供了多种基本的缓存回收方式监控缓存加载/命中情况通常,Guava缓存适用于以下情况: 愿意花费一些内存来提高速度。...转为类型名称这个类型数量比较多,有可能发生变动但不频繁的情景 比如端面需要根据填报志愿的专业code获取专业名称如果返回实体不带Name,每个调一次查询服务,或者一次性拿出所有名称循环对比取显然不是很优雅就可以用Guava...来实现 /** 引入如下依赖 com.google.guava guava</artifactId

26930

初探Google 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探讨 在设计模式中, 有一种叫做发布/订阅模式, 即某事件被发布, 订阅该事件的角色将自动更新。

1.1K20

Guava -- Bloom Filter原理

常见实现方案 guavaGuava中提供了com.google.common.hash.BloomFilter类,如下所示,可以很方便的实现布隆过滤器。其实现原理中有很多值得学习的点。...Byte,占8bits,最大的为Long,占64bits,因此常见方案是使用Long数组作为bits数组使用,举个例子 128bits可以用long[2]标识,146bits可以用long[3]表示,在Guava...如上图计算,100w元素,0.0001误判率下需要13次hash计算,hash在快次数一多也必然会成为性能瓶颈,在Guava中并没有引入多个Hash函数,而是计算出一个hash值后,其他的使用位移,乘除等方法快速计算出来...} 另外com.google.common.hash.BloomFilterStrategies也是枚举策略模式的典型应用场景,值得学习,关于策略模式可以参考 设计模式–策略模式的思考 Redis Guava...文章标题: Guava -- Bloom Filter原理 文章链接: https://mrdear.cn/2019/03/16/framework/guava/guava--bloom-filter/

1.6K30

guava cache 源码分析

背景 上一篇文章中,我们详细介绍了 guava cache 的使用方法,尤其是在其中重点介绍了 guava cache 异步回种的用法,那么,性能优异的异步回种缓存究竟是如何实现的呢?...本文我们就来详细阅读 guava cache 的完整流程代码,抽丝剥茧,学习其中的思想与智慧。 guava cache 用法详解 2....基本思想 guava cache 异步回种基本思想: cache.get() 完整流程图: 3....guava cache 在上述情况下调用 lockedGetOrLoad() 方法获取数据,这个方法中,通过加 AQS 锁避免多个线程同时 load 获取数据,然后通过回调 load() 方法同步获取数据...总结 了解了 guava cache 异步回种的基本思想,也许你会觉得这一套解决方案的实现是如此简单,那么,我们知道,memcache、redis 都是只有提供了同步接口的,那么,你是否可以在此基础上实现一套异步回种方案呢

59710
领券