Java中的transient关键字
2013-03-18 17:56
387 查看
Java中的transient关键字用于声明当需要持久化变量时,有transient关键字修饰的变量无需持久化。如当需要序列化一个java对象时,该对象中的有transient修饰的field无需持久化,如下述代码所示:
上述代码的运行结果为:
UserName: main; Passwd: 123456
UserName: main; Passwd: not set
所以,Passwd并没有被持久化,而且当从磁盘中读取TransientTest类的实例时,并没有调用该类的默认构造器,而是直接将磁盘中的内容填充到该类实例中
public class TransientTest implements Serializable { private static final long serialVersionUID = -6317993139178374949L; private String username; private transient String passwd; public TransientTest(){ username= Thread.currentThread().getName(); passwd ="123456"; } public String toString(){ if(passwd == null){ passwd ="not set"; } return new String("UserName: " + username +"; Passwd: " +passwd); } public static void main(String[] args) { try { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("logFile.txt")); TransientTest transientObj =new TransientTest(); System.out.println(transientObj); oos.writeObject(transientObj); oos.close(); ObjectInputStream ois =new ObjectInputStream(new FileInputStream("logFile.txt")); transientObj = (TransientTest) ois.readObject(); System.out.println(transientObj); } catch (Exception e) { e.printStackTrace(); } } }
上述代码的运行结果为:
UserName: main; Passwd: 123456
UserName: main; Passwd: not set
所以,Passwd并没有被持久化,而且当从磁盘中读取TransientTest类的实例时,并没有调用该类的默认构造器,而是直接将磁盘中的内容填充到该类实例中
相关文章推荐
- Java transient和volatile关键字
- Java transient关键字使用小记
- Java中不常见的关键字:strictfp,transient
- java volatile 和Transient 关键字
- Java transient关键字
- Java transient关键字使用小结及一些需要注意的细节
- Java transient 关键字
- Java transient关键字的理解
- Java关键字transient和volatile小结(转)
- Java transient关键字使用小结
- Java关键字transient和volatile
- Java transient关键字使用小结
- Java千百问_03基础语法(012)_transient关键字有什么用
- Java生僻关键字之transient
- Java关键字transient和volatile小结
- Java transient关键字
- Java关键字transient和volatile
- Java transient关键字
- Java中的关键字transient
- Java transient关键字使用小记