java 基础之 list

ArrayList 基于 array, 顾名思义。

ArrayList是用数组实现的,这个数组的内存是连续的,不存在你说的相邻元素之间还隔着其他内存什么的
索引ArrayList时,速度比原生数组慢是因为你要用get方法,这是一个函数调用,而数组直接用[ ]访问,相当于直接操作内存地址,速度当然比函数调用快 

===

1、新建ArrayList的时候,JVM为其分配一个默认或指定大小的连续内存区域(封装为数组)

2、每次增加元素会检查容量,不足则创建新的连续内存区域(大小等于初始大小+步长),也用数组形式封装,并将原来的内存区域数据复制到新的内存区域,然后再用ArrayList中引用原来封装的数组对象的引用变量引用到新的数组对象:

原文地址:https://www.cnblogs.com/FlyAway2013/p/5584200.html