ArrayList的序列化是怎么实现的?

1、ArrayList底层是通过Object数组完成数据存储的,但是这个数组被声明成了 transient,故不会被持久化。
2、ArrayList重写了writeObject和readObject方法来进行序列化/反序列化

为什么底层数组要使用transient

ArrayList实际上是动态数组,每次在放满以后自动增长设定的长度值,如果数组自动增长长度设为100,而实际只放了一个元素,那就会序列化99个null元素。为了保证在序列化的时候不会将这么多null同时进行序列化,ArrayList把元素数组设置为transient。

-----------------------------------------------------------------------------读书笔记摘自 ArrayList的序列化是怎么实现的?

你可能感兴趣的:(基础知识,java,开发语言)