ArrayList中几个不为人知的事情
今天学习下ArrayList的源代码,不同于其他人写的博客,很多都是翻译源代码中的注释,然后直接贴到文章中去。小编打算换一种书写风格,带着问题看源码可能收获会更大,本文将围绕着下面几个问题展开讨论。
一、问题产生
1、为什么ArrayList集合中存储元素的容器声明为transient Object[] elementData;?
2、既然ArrayList可以自动扩容,那么它的扩容机制是怎样实现的?
3、调用ArrayList的iterator()返回的迭代器是怎样的?
4、采用ArrayList的迭代器遍历集合时,对集合执行相关修改操作时为什么会抛出ConcurrentModificationException,我们该如何避免?
5、当集合扩容或者克隆时免不了对集合进行拷贝操作,那么ArrayList的数组拷贝是怎么实现的?
6、ArrayList中的序列化机制
小编对ArrayList源码大概浏览了之后,总结出以上几个问题,带着这些问题,让我们一起翻开源码解决吧!
二、问题解答1、为什么ArrayList集合中存储元素的容器声明为transient Object[] eleme
...