Java Arraylist实现原理.
来源:互联网 发布:ni数据采集卡使用入门 编辑:程序博客网 时间:2024/05/16 23:36
嗯,,深入了解下关于底层的实现原理。
首先 数组是这样的。
private transient Object[] elementData;
私有,不可序列化,Object。为什么要用transient修饰呢。因为容器的实际设计大小是比原来的大的。比如数组大小是8,容易可能设计成8*1.5=12。所以这样要是被序列化的话就会多浪费四个空间。当数组大小变大就会浪费更多的控件。所以设计者加入transient,使其不可被序列化。并且在WriteObject中将其手动序列化。
代码如下
private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException{// Write out element count, and any hidden stuffint expectedModCount = modCount;s.defaultWriteObject(); // Write out array length s.writeInt(elementData.length);// Write out all elements in the proper order.for (int i=0; i<size; i++) s.writeObject(elementData[i]);if (modCount != expectedModCount) { throw new ConcurrentModificationException(); } }可以看出是size而不是elements.length。说明只序列化数组大小的空间。避免了空间的浪费。
http://blog.csdn.net/jzhf2012/article/details/8540410 具体看这篇 (逃
阅读全文
0 0
- java ArrayList实现原理
- Java Arraylist实现原理.
- Java集合-ArrayList 实现原理
- java ArrayList 的实现原理
- JAVA集合--ArrayList实现原理
- JAVA ArrayList的实现原理 及ArrayList的使用
- JAVA ArrayList的实现原理 及ArrayList的使用
- JAVA ArrayList的实现原理 及ArrayList的使用
- (转)java学习:ArrayList的实现原理
- java的ArrayList的实现原理
- Java集合学习:ArrayList的实现原理
- Java集合6:ArrayList的实现原理
- Java集合---ArrayList的实现原理
- Java集合:ArrayList的实现原理
- Java集合---ArrayList的实现原理
- Java集合中ArrayList的实现原理
- Java集合---ArrayList的实现原理
- Java集合---ArrayList的实现原理
- 数据结构上机实践第11周项目1
- 第10周项目3- 中序线索化二叉树的算法验证
- Linux command
- 自己看别人看了没用-多组调图
- 第十周项目二 哈夫曼树
- Java Arraylist实现原理.
- 控制台SQL乱码
- 第八周 项目4-字符串加密
- Linux系统里nw.js里播放jwplayer视频
- 九周 项目1 二叉树算法库
- Intellij Idea安装主题包
- zookeeper实践
- 测试一下
- Android studio 3.0(AS3.0)使用点滴