参考资料上这么说:
如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。例如:
class T {
transient int a; //不需要维持
int b; //需要维持
} 这里,如果T类的一个对象写入一个持久的存储区域,a的内容不被保存,但b的将被保存。问题:什么叫持久的存储区域?能分析一下吗,具体用在哪里?
如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。例如:
class T {
transient int a; //不需要维持
int b; //需要维持
} 这里,如果T类的一个对象写入一个持久的存储区域,a的内容不被保存,但b的将被保存。问题:什么叫持久的存储区域?能分析一下吗,具体用在哪里?
public class A implements java.io.Serializable { private String normalString;
private transient String transientString; ..........}那么,如果把它
A a = new A(......);
ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream("file1"));
o.writeObject(a);
那么这样的时候,写到本地的文件file1里面是没有保存transientString的值。但是却保存了normalString的值
一般应用在瞬态变化中,如读,写的中间过程。