以下要求阅读过源码或者有输出

Map的各种实现

  • Java的HashMap源码实现,特别注意当冲突达到7时,变化为红黑树的操作

  • Zk中为何使用ConcurrentHashMap作为树

  • Redis的HashTable的实现,渐进式rehash实现

  • SLB中一致性Hash算法

  • 布隆过滤器

  • LRU算法中的LinkedHashMap

  • JDK8/Groovy集合类中groupBy

WeakHashMap

WeakReference相比SoftReference,无论是否OOM,都会被GC。因此可以配合Map做缓存

  • 动态代理/反射中的缓存
  • 大对象/容易再次生成的对象