以下要求阅读过源码或者有输出
Map的各种实现
-
Java的
HashMap
源码实现,特别注意当冲突达到7时,变化为红黑树的操作 -
Zk中为何使用
ConcurrentHashMap
作为树 -
Redis的HashTable的实现,渐进式rehash实现
-
SLB中一致性Hash算法
-
布隆过滤器
-
LRU算法中的LinkedHashMap
-
JDK8/Groovy集合类中
groupBy
WeakHashMap
WeakReference相比SoftReference,无论是否OOM,都会被GC。因此可以配合Map做缓存
- 动态代理/反射中的缓存
- 大对象/容易再次生成的对象