您的位置:首页 > 编程语言 > Java开发

java 中 transient关键字

2018-02-11 23:24 344 查看
见:https://baike.baidu.com/item/transient/3870237?fr=aladdin

java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。换句话来说就是,用transient关键字标记的成员变量不参与序列化过程。
Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。

例:
public transient int SSN;

当属性如上声明时,即使被赋值为 11122333,当其反序列化后SSN的值依旧是0;
当对象被序列化时,属性 SSN 的值为 111222333,但是因为该属性是短暂的,该值没有被序列化。
所以反序列化后 Employee 对象的 SSN 属性为 0。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息