2
CopyOnWriteArrayList被標記爲Serializable。但它的內部狀態是暫時的。任何人都可以請回答我們試圖在這種類型的列表中序列化。CopyOnWriteArrayList內部狀態爲瞬態
/** The array, accessed only via getArray/setArray. */
private volatile transient Object[] array;
CopyOnWriteArrayList被標記爲Serializable。但它的內部狀態是暫時的。任何人都可以請回答我們試圖在這種類型的列表中序列化。CopyOnWriteArrayList內部狀態爲瞬態
/** The array, accessed only via getArray/setArray. */
private volatile transient Object[] array;
writeObject
方法已被覆蓋,以特定方式存儲狀態。所以實際的商店,即array
是暫時的,並不影響CopyOnWRiteArrayList對象的序列化。
對象中的瞬態成員將在默認序列化過程中由JVM保留。但是,如果您覆蓋writeObject()
,那麼該方法定義將用於序列化對象而不是默認的序列化策略。
謝謝。 writeObject方法使其明確 –
我想知道爲什麼CopyOnWRiteArrayList需要定製序列化? – XiaJun