transient

1)一旦变量被transient修饰,变量将再也不是对象持久化的一部分,该变量内容在序列化后没法得到访问。对象

2)transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量若是是用户自定义类变量,则该类须要实现Serializable接口。接口

3)被transient关键字修饰的变量再也不能被序列化,一个静态变量无论是否被transient修饰,均不能被序列化。变量

第三点可能有些人很迷惑,由于发如今User类中的username字段前加上static关键字后,程序运行结果依然不变,即static类型的username也读出来为“Alexia”了,这不与第三点说的矛盾吗?其实是这样的:第三点确实没错(一个静态变量无论是否被transient修饰,均不能被序列化),反序列化后类中static型变量username的值为当前JVM中对应static变量的值,这个值是JVM中的不是反序列化得出的,序列化

相关文章
相关标签/搜索