transient是短暂的意思。
对于transient 修饰的成员变量,在类的实例对象的序列化处理过程中会被忽略。 因此,transient变量不会贯穿对象的序列化和反序列化,生命周期仅存于调用者的内存中而不会写到磁盘里进行持久化。
序列化
序列化使用ObjectOutputStream.writeObject(e)
方法。
反序列化使用ObjectInputStram.readObject()
方法
static
修饰的变量同样不会序列化!
-
ArrayList中的
transient
:为什么ArrayList还能序列化呢?
很简单,重写riteObject()和readObject()方法就好了 -
又有一个问题,既然想序列化,ArrayList为什么又要使用transient呢?
因为容量的问题,elementData里面有一些元素是空的,这种是没有必要序列化的。