![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java面试题
crawlertinux
ML!!!
展开
-
从源码级别分析Java中ArrayList的动态修改是如何实现的
要研究ArrayList的动态修改是如何实现的,那么自然想到去看看ArrayList的add()方法的底层实现: public boolean add(E e) { ensureCapacityInternal(size + 1); // ? elementData[size++] = e; // 添加元素,数组内当前元素个数加1 return true; // 成功返回true,表示添加成功 } add()方法其他部分都很好理解,ensureCapacityInternal(s原创 2021-06-25 10:34:21 · 116 阅读 · 0 评论 -
从源码级别分析 | 数组(Array)和 ArrayList 有何区别?
区别一:Array可以容纳基本类型和对象,而ArrayList只能容纳对象 查看ArrayList的源码,如下,可以发现,其内部封装了一个Object数组,根据这点可知,ArrayList只能容纳对象。 transient Object[] elementData; // ArrayList实际存储数据的数组 有没有办法拿到ArrayList的容量大小? 由于ArrayList没有提供获取容量的api,因此我的思路是通过反射来获取。核心思路是获取elementData这个属性,由于它是Object数组原创 2021-06-24 18:38:55 · 166 阅读 · 0 评论