我正在阅读Apache Commons源代码,以成为更好的程序员。我注意到AbstractLinkedList
:
transient Node<E> header;
/** The size of the list */
transient int size;
/** Modification count for iterators */
transient int modCount;
我们不需要对它们进行序列化/反序列化吗?
答案 0 :(得分:1)
如果您的类实现了Serializable
接口,则默认情况下,序列化对象时,所有非瞬态属性都会写为自定义二进制流。 但是,如果您希望更好地控制“序列化数据”的写入方式,通常会将“依赖于实现”属性标记为trasient并实现您自己的自定义readObject
/该特定类的writeObject
方法。
为了证明这一点,您会发现分别由被覆盖的doReadObject
和doWriteObject
方法调用的same class has methods like readObject
和writeObject
。< / p>