1. ArrayList的扩容是1.5倍, HashMap是2倍
  2. ArrayList扩容: 首先计算扩容之后的所需容量, 然后创建新数组, 把旧的数组元素拷贝到新数组中
  3. LinkedList底层是双链表结构, 获取元素的时候 如果下标小于size的1/2,则从头开始找, 否则从尾部找
  4. LinkedHashMap是有序的Map, 继承HashMap,里面每个元素都会存储before元素和after元素.
  5. 标记整理, 标记-清除主要用在老年代中, 因为对象存活率高,没有额外空间, 而复制算法一般用在新生代, 因为新生代一般只有少量对象存活, 而且有内存区域(Eden,S0,S1)的划分, 复制算法非常高效.
  6. 直接new对象,事物是不生效的, 必须要SpringIOC生成的代理对象才可以
  7. JVM大纲图: https://s4.ax1x.com/2021/12/16/TCGt4H.jpg