
缓存
平静不绝望
ALOHA HEJA HE
-
原创 【LRU】LinkedHashMap 实现 LRUCache
1 结构示意图2 源码实现package classloader.lc;import java.util.LinkedHashMap;import java.util.Map;/** * LinkedHashMap实现Map的接口,和HashMap不同的是维持了一个所有entries的双向链表, * 并持有一个该有序链表的迭代器,并有两个Entry<K,V>引用transient LinkedHashMap.Entry<K,V> head,tail..2021-02-25 15:08:0719
0
-
原创 【不懂就画一千零一夜】Spring setter 注入是如何解决循环依赖问题的? 构造注入为啥解决不了循环依赖?
1 注入是如何解决循环依赖问题的? 构造注入为啥解决不了循环依赖?构造注入解决不了:因为构造方法注入的实例,每次都要new一个要构造的实例bean,而A创建时,依赖B,就去创建B,B又依赖了A,继续构造A,如此循环下去 A(B) B(A) A(B)->.... 设值注入:使用三级缓存来解决循环依赖问题;构造的对象使用无参构造方法,会把A先放入二级缓存(前置也会把A的工厂方法放到三级缓存),后面B,会从二级缓存中获取A(中间态)完成属性设置,B就直接进入了一级缓存中,递归会A,最后也进入一级缓存。2020-11-20 14:51:35216
0
-
原创 【volatile】易失性变量的HB 原则,如何证明?
我想不到证明方法......因为 cpu内copy变量的缓存时长级别和测试代码运行需要的时长,不在一个数量级?2019-10-31 07:58:44144
0
-
原创 知识库--本地缓存设计(128)
private LoadingCache<String, String> cCodeCache; private static final String qurl = "http://"; /** * http 请求 IO型计算 采用线程池 */ private static ExecutorService executor = new ThreadPoolE2017-03-01 14:00:47334
0
-
原创 【技能库】@Cacheable @CachePut Spring 缓存示例(142)
配置 <!-- 启动缓存注解功能 --> <cache:annotation-driven/> <!--generic cache manager --> <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager"> <property name="2017-03-15 22:53:541401
0
-
原创 "Callback cannot return a non-null value as it gets overwritten by the pipeline"
常用pipeline,这个异常理解姿态:因为:pipeline模式 返回结果是 List<Object> closePipeline = connection.closePipeline(); 会覆盖掉自定义的返回值,所以没有理由去返回一个非null的值,没有用处,所以禁止回调返回非null的值,必须返回null,参考https://docs.spring.io/spring-da...2019-01-07 15:20:452510
0