小讲

arrayList和linkedList的区别和扩容

从内存模型和线程安全来看

5,848

2

3

最新校招难题刷题,快来进刷题群吧
核心内容

本题是面试常考题之一,但是很多同学没有真实理解或使用过相应的类,只靠记忆。在面试的时候,容易被问住。

从实现看:LinkedList底层实现是双链表;ArrayList底层实现是动态数组。即LinkedList使用的离散内存,而ArrayList使用的是连续内存空间

从扩容看:LinkedList是离散空间,不需要主动扩容。ArrayList当内存空间不足的时候,需要主动扩容,jdk1.7之后的扩容尺寸为原尺寸的1.5倍。比如默认长度为10,当数据长度大于10时,发生扩容,扩容后大小为10+10/2 = 15

用户评论
最新评论