JDK1.8的ArrayList的add方法的源码学习

182 阅读1分钟
  1. 创建一个ArrayList,并往内部添加一个元素; image.png

  2. 构造函数创建一个空的Object数组出来,这里也是与JDK1.7的区别,JDK1.7是直接new Object(10),创建一个长度为10的Object的数组;

    这个优化有一个好处就是,在不需要往ArrayList中添加元素的时候,数组长度始终为0,节省了内存空间;

image.png

image.png

image.png

  1. calculateCapacity方法

image.png

image.png

  1. ensureExplicitCapacity方法

image.png

  1. grow方法

image.png