transient关键字的理解与应用
下面这段话来自百度百科:
java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。
Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。
?
下面给出示例:
?
?
运行结果为:1:xiva1:null
?
从运行结果可以看出:
使用了transient属性的对象不能被反序列化的,也可以这样说,一个对象的属性被声明为transient,则在持久化的过程中会被忽略。
?
当某些属性我们需要用到,但没必要持久化的时候,我们可以加上关键词transient。
?
?