java中transient(瞬时)关键字用法
2012-10-16 10:47
411 查看
当我们对序列化进行控制时,可能某个特定子对象不想让java的序列化机制自动保存与恢复。如果子对象表示的信息是private属性,一经序列化处理,人们就可以通过读取文件或者拦截网络传输的方式来访问到它。
如果我们正在操作的是一个Serializable对象,那么所有的序列化操作都会自动进行。为了能够予以控制,可以用transient关键字逐个字段地关闭序列化。
在thinking in java书中的例子Login类保存了某个特定的登录回话信息。登录的合法性通过校验后,我们想把数据保存下来,但不保存密码,故password字段标志为transient。
如果我们正在操作的是一个Serializable对象,那么所有的序列化操作都会自动进行。为了能够予以控制,可以用transient关键字逐个字段地关闭序列化。
在thinking in java书中的例子Login类保存了某个特定的登录回话信息。登录的合法性通过校验后,我们想把数据保存下来,但不保存密码,故password字段标志为transient。
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.Date; import java.util.concurrent.TimeUnit; public class Logon implements Serializable{ private Date date = new Date(); private String username; private transient String password; public Logon(String name , String pwd){ this.username=name; this.password=pwd; } public String toString(){ return "Logon info:\n username "+username+"\n date: "+date+"\n password: "+password; } public static void main(String[] args) throws Exception { Logon a = new Logon("Hulk", "myLittlePony"); System.out.println("Logon a= "+a); ObjectOutputStream o = new ObjectOutputStream( new FileOutputStream("source/Logon.out")); o.writeObject(a); o.close(); TimeUnit.SECONDS.sleep(1); //get a ObjectInputStream in = new ObjectInputStream( new FileInputStream("source/Logon.out")); System.out.println("Recovering object at "+new Date()); a=(Logon)in.readObject(); System.out.println("Logon a = "+a); } }
相关文章推荐
- java transient关键字用法
- Java transient 关键字用法
- java中transient关键字用法分析
- Java中的关键字 transient
- Java不常用的关键字介绍 native,strictfp,transient,volatile
- Java中的transient关键字
- java关键字transient与volatile小结
- Java中的transient、volatile、strictfp关键字使用
- JAVA中super关键字的用法
- Java中final关键字的用法
- Java transient关键字使用笔记
- Java程序初始化顺序及几个关键字用法记录
- Java transient关键字
- java中super关键字的三种用法 [转]
- Java关键字transient和volatile小结(转)
- java synchronized关键字的用法
- java中synchronized关键字的用法
- Java transient关键字
- Java transient关键字使用小记
- Java 中transient 的关键字用法