CopyOnWriteArrayList标记为Serializable。但它的内部状态是短暂的。任何人都可以回答我们在这种类型的List中尝试序列化的内容。
/** The array, accessed only via getArray/setArray. */
private volatile transient Object[] array;
答案 0 :(得分:4)
已覆盖writeObject
方法以特定方式存储状态。因此实际存储(即array
是暂时的)不会影响CopyOnWRiteArrayList对象的序列化。
JVM在默认序列化过程中将保留对象中的瞬态成员。但是,如果重写writeObject()
,那么该方法定义将用于序列化对象而不是默认的序列化策略。