11 2019 档案
摘要:ArrayBlockingQueue 功能 全名 简述 由数组支持的有界阻塞队列。这个队列对元素FIFO(先进先出)排序。队列的头是队列中存在时间最长的元素。队列的尾部是队列中存在时间最短的元素。新元素插入到队列的尾部,队列检索操作获取队列头部的元素。 这是一个典型的“有界缓冲区”,其中大小固定的数
阅读全文
摘要:CopyOnWriteArrayList 功能 全名 简述 ArrayList的线程安全变体,其中所有的可变操作(添加、修改等)都是通过创建底层数组的新副本来实现的。 方法 原理 add addIfAbsent remove get 优缺点 优点:根据数据结构和实现逻辑,这个适合“读多写少”的场景。
阅读全文
摘要:ArrayList 功能 完全命名 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable 简介 实现List接口的可调整大小的数组,这是个
阅读全文
摘要:一个简单知识点,List和Set都是继承Collection接口,HashMap实现了Map接口,而这两个顶级接口的实现类都有哪些呢? Collection<E> 子接口:BlockingDeque<E>, BlockingQueue<E>, Deque<E>, List<E>, Navigable
阅读全文
摘要:设置同步状态,利用CAS操作。 进入tryLock,实际上是非公平锁的实现(非公平锁:不能保证正在排队的线程能拿到锁,因为可能被新来的线程抢走) 进入lock,实际上是公平锁的实现(公平锁:老的线程在排队,新来的线程也一样要排队,不能抢占) tryLock和lock不同点 1. tryLock不管拿
阅读全文
摘要:二叉树 比如我要依次插入10、3、1、8、23、15、28。先插入10作为根节点: 然后插入3,比10小,放在左边: 再插入1,比10和3小,放在3左边: 再插入8,比10小,比3大,放在3右边: 再插入23,比10大,放在10右边: 再插入15,比10大,比23小,放在23左边: 最后插入28,比
阅读全文
摘要:传统Spring 先引入依赖 配置web.xml 新建一个配置类(因为SpringBoot之前也可以配置扫描和注解,所以配置类并不是只有SpringBoot专用) 新建一个controller 配置spring.xml(扫描配置类所在的包,启用注解) 配置spring-mvc.xml(扫描Contr
阅读全文