Collections Framework(JCF)

:::info HashMap Java HashMap Reference :::

  • 底层数据结构: HashTable ( Array + LinkedList + Red Black Tree )
  • 扩容策略: 依赖 Threshold = current_Capacity * LoadFactor, 每次 扩容为两倍大小。
  • Java8 以后 当链表长度大于8 时,链表会转换为红黑树

:::info LinkedHashMap :::

  • 一般缓存用LRU替换策略,但LinkedHashMap可实现FIFO替换策略缓存

    • 解释:LinkedHashMap用doubly linked list 保证迭代顺序,每次在put新entry时会自动询问removeEldestEntry(),删除最老entry,因此可以创建Cache子类继承LinkedHashMap,重写该方法,指定缓存大小,当map的size大于指定的缓存大小就让removeEldestEntry()返回true :::info Queue <> :::
  • Java官方推荐使用ArrayDeque实现类,性能更好

  • java_collections_overview.png

    Reflection

  • 获取Class字节码文件对象

    • 类.class
    • 类的实例.getClass()
    • Class.forname( classpath ) 类的全限定名