ArrayList序列化

来源:互联网 发布:什么软件有钱人多 编辑:程序博客网 时间:2024/06/03 15:57

这里写图片描述
我们知道被transient修饰的变量不能被序列化,但是为什么ArrayList还能对里面的元素进行序列化呢?
这里写图片描述
这是因为在ArrayList中定义了来个方法: writeObject和readObject。
这里写图片描述
那么为什么使用transient呢?
ArrayList实际上是动态数组,每次在放满以后自动增长设定的长度值,如果数组自动增长长度设为100,而实际只放了一个元素,那就会序列化99个null元素。为了保证在序列化的时候不会将这么多null同时进行序列化,ArrayList把元素数组设置为transient。

0 0