时间修改成功,但是没同步?
问题引出 在OJ的一次考试中,中途延长考试后,有一些同学需要重新登录,但是他们登录上去所获取的开放时间依旧是原来的时间,因此一直显示“考试已结束”,无法答题。我迅速排查日志内容,发现并未有ERROR,数据库的题目集时间也是正确的。但在我仔细检查登录方法时,看到登录时需要从Redis获取题目集时间,赶紧打开Redis一看,缓存的时间和数据库对不上了。 解决方案 很多人写更新缓存数据代码时...
问题引出 在OJ的一次考试中,中途延长考试后,有一些同学需要重新登录,但是他们登录上去所获取的开放时间依旧是原来的时间,因此一直显示“考试已结束”,无法答题。我迅速排查日志内容,发现并未有ERROR,数据库的题目集时间也是正确的。但在我仔细检查登录方法时,看到登录时需要从Redis获取题目集时间,赶紧打开Redis一看,缓存的时间和数据库对不上了。 解决方案 很多人写更新缓存数据代码时...
问题引出 在某一天的开发中,我突然发现有“神人”将controller的Bean注入到了service中,为的是调用controller中的一个方法,同时还在那个controller中注入了service,还运行的没一点毛病。按照正常的Bean加载过程,这应该造成了循环依赖,但是为什么运行没有问题呢?Spring是如何解决的呢? 依赖注入 依赖注入是一种设计模式,它将对象之间的依赖关系...
概述 LinkedList同时实现了List接口和Deque接口,也就是说它既可以看作一个顺序集合,又可以看作一个队列(Queue),同时还可以看作一个栈(Stack)。与ArrayList不同,LinkedList基于链表实现,添加和删除元素效率高。 public class LinkedList<E> extends AbstractSequentialList&...
概述 HashMap实现了Map接口(Map<K, V>),允许存放 key 为 null 的元素,同时也允许插入 value 为 null 的元素;同时实现了Cloneable和Serializable允许克隆和序列化。 public class HashMap<K,V> extends AbstractMap<K,V> implements...
ArrayList 底层解析 Collection类关系图 介绍 容器,就是可以容纳其他Java对象的对象。优点如下: 降低编程难度 提高程序性能 提高API间的互操作性 降低学习难度 降低设计和实现相关API的难度 增加程序的重用性 Java容器里只能放对象,对于基本类型(int, long, float, double等),需要将其包装成对象类型...