标签: java-custom-serialization

11
推荐指数
4
解决办法
1万
查看次数

为什么 ArrayList 大小字段不是瞬态的?

JavaArrayList使用自定义序列化并显式编写size. 然而,尺寸并未在ArrayListas中标记transient。为什么size要写两次:一次via defaultWriteObject,再次vis writeInt(size),如下所示(writeObject方法)?

s.defaultWriteObject();

// Write out size as capacity for behavioral compatibility with clone()
s.writeInt(size);

// Write out all elements in the proper order.
for (int i=0; i<size; i++) {
    s.writeObject(elementData[i]);
}
Run Code Online (Sandbox Code Playgroud)

java serialization java-custom-serialization

3
推荐指数
1
解决办法
106
查看次数