ArryList输出的数组和数组之间的区别

arrylist 输出的时动态数组可以变动长度,数组不能变动长度吗?

ArrayList是一个集合,但是内部其实是数组实现的,ArrayList的长度可变,
那是因为在初始化的满了以后,你在向ArrayList里面添加东西,这个时候ArrayList就创造一个新的数组长度是当前的1.5倍,
然后把当前的数据拷贝到扩容的里面。
数组定义了就不可以变的了,内存已经分配好位置。

可以看看java 实现ArrayList的源代码,应该就明白了

显然啊。前者是通过不停地动态扩容,即创建新数组,然后抛弃原来的旧数组的过程。