## 1. Juc 1. ThreadLocal | InheritableTL(继承-但看不见修改) | TransmitableTL(继承且看见修改): 线程池中使用之后没有 remove, 导致用户信息错乱, 且会导致内存泄漏 2. ConcurrentHashMap 只保证提供原子性的读写操作是线程安全的 - containsKey/size/isEmpty/containsValue/putAll 等都有可能获取中间态数据, **不能作为流程控制** - sample: 统计大文本每个key出现的次数{CHM+LongAdder+putInAbsent+多线程} 3. CopyOnWriteArrayList 在大量写的情况下会有性能问题 - 修改时会先复制出来一份 4. Map 方法 - putIfAbsent: HashMap 可以KV 为null, CHM 不可以为null**会直接报错** - computeIfAbsent: Functional 为null 则不会真正的put 进去
1. Juc