您的位置:首页 > 理论基础 > 计算机网络

对象序列化----transient关键字的作用

2008-10-19 19:55 253 查看
 对象的序列化(Serialize)指将一个Java对象写入IO流中,与此对应的是,对象的反序列化(Deserialize)则指从IO流中恢复该Java对象。 jbbI g~/  
      为了让某个类是可序列化的,该类必须实现如下两个接口之一: t+j;Vvq  
Serializable

Externalizable
      对象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象,对象序列化机制允许把内存中的Java对象转换成与平台无关的二进制流,从而允许把这种二进制流持久保存在磁盘上,通过网络将这种二进制流传输到另一个网络节点。 x`>|?yS(  
      在一些特殊的场景下,如果某个类里包含的属性值是敏感信息,例如银行帐户信息、私人资料信息等等,这时候不希望系统将某些属性值进行序列化;或者某个属性的类是不可序列化的,因此不希望对该属性进行递归序列化,避免发生java.io.NotSerializableException异常。      K65 NK`  
      由于可序列化的对象可能会引发java.io.NotSerializableException异常。对于以上情况,我们可通过用transient关键字修饰,不希望序列化的属性而解决。通过在属性前面加上transient关键字,可以指定Java序列化时无需理会该属性值。如下Person类,其age属性使用了transient关键字修饰,那么该age属性就不会被序列化了。 J|`d2kQznC  
public class Person implements java.io.Serializable [+r8tga  
{  sQZP MN5D  
 private String name;  [rf]cf^Z c  
 private transient int age; e[GbH78y{  
 public Person(String name , int age)  tO2o>)k.  
 {  ^R0/, ck}  
    this.name = name;    f}2=&ov  
    this.age = age;  7[xwS waCt  
 } <G z8NS  
 //省略setter和getter方法 !#ajdyk&b  
} XJu}a+p$6e  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息