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