JDK源码之 ArrayList
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨乔二爷 来源丨乔二爷( hellozhouq ) 00 前言 ArrayList 是我们日常开发中使用非常频繁的一个集合,今儿我们通过源码来看看它底层是怎么来实现的,了解了解它的优缺点和真正适合的场景。 01 内部的组成 //默认容量 privatestaticfinalint DEFAULT_CAPACITY = 10; // 用于空实例的共享空数组实例。在初始化时,你传进去的初始化大小为0,那么就用这个来做的处理。 privatestaticfinalObject[] EMPTY_ELEMENTDATA = {}; //共享的空数组实例,用于默认大小的空实例,默认构造器使用的。 privatestaticfinalObject[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; // 用来存储元素的数组 transientObject[] elementData; //数组的大小 privateint size; 02 构造函数 先来看ArrayList 的构造函数。 如果我们直接 new ArrayList() 使用默认的构造函数来创建它,那么它会直接使用一个空的 Object []