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 <
> :::
- 解释:LinkedHashMap用doubly linked list 保证迭代顺序,每次在put新entry时会自动询问removeEldestEntry(),删除最老entry,因此可以创建Cache子类继承LinkedHashMap,重写该方法,指定缓存大小,当map的size大于指定的缓存大小就让removeEldestEntry()返回true
:::info
Queue <
Java官方推荐使用ArrayDeque实现类,性能更好
-
Reflection
获取Class字节码文件对象
- 类.class
- 类的实例.getClass()
- Class.forname( classpath ) 类的全限定名