学习笔记
文章平均质量分 75
一个大泥球
切记!数据结构和算法是内功。
展开
-
多线程读书笔记(三)
并发容器-写时复制的list和SetCopyOnWriteArrayList基于synchronized的同步容器有问题,其中一个就是复合操作饿时候(比如先检查再更新),也需要调用方加锁。CopyOnWriteArrayList的内部也是一个数组,每次修改操作,都会新建一个数组,复制原数组的内容到新数组,在新数组上进行需要的修改,然后以原子方式设置内部的数组引用,这就是写时复制。一句话:数组内容是只读的,写操作都是通过新建数组,然后原子性的修改数组引用来实现的。读不需要锁,可以并行。读写也可以并行原创 2021-07-05 11:29:15 · 109 阅读 · 0 评论 -
MapStruct 使用总结
前置条件maven 引入依赖 <properties> <java.version>11</java.version> <java.version>1.8</java.version> <org.mapstruct.version>1.4.2.Final</org.mapstruct.version> </properties> <dep原创 2021-06-29 18:50:16 · 1657 阅读 · 0 评论 -
TreeMap的源码学习
内容来自-码出高效public class RedBlackSourceCode { public V put(K key, V value) { // t表示当前节点,记住这个很重要。先把TreeMap的根节点root引用赋值给当前节点 TreeMap.Entry<K,V> t = root; // 如果当前节点为null,即是空树,新增的KV形式的节点就是根节点 if (t == null) {原创 2021-06-21 14:11:08 · 78 阅读 · 0 评论 -
多线程学习笔记(二)
线程协作模式同时开始public class FireFlag { private volatile boolean fire = false; public synchronized void waitForFire() throws InterruptedException { while (!fire) { wait(); } } public synchronized void fire() {原创 2021-06-15 21:45:39 · 1107 阅读 · 1 评论