这个在《Thinking in Java》中有很详细的解释
解决方案 »
- spring+tuscany问题——spring-sca.xsd 的地址是啥
- /image/backI.jpg
- 求行列式的值
- java中值传递和引用传递如何区分?
- 数组中怎么样实现数组中元素的值的累加?
- 怎么才能在JTable的单元格里添加数据呢,我想添加的是Properties文件里的数据。
- db2通过CachedRowSet resultSet的getClob(int i)出现Datatype Mismatch错误
- 各位领导,见者有分!!!谢谢光临!!
- 请问weblogic,websphere那个更好些?
- 求大神帮看看这个错误
- 各位,用Jbuilder9中的queryDataSet为何不能编辑数据。救命啊
- JSP 连 SQL Server 的问题!
声明为transient(瞬时变量)可防止被串行化被保存这也就为什么它叫瞬时变量
我把答复粘给你一般情况下,序列化时会把所有field全部写到流(你可以当作文件来考虑)里,有时并不是所有field都是那么有用。
打个比方吧!你的类中有一个method计算非常耗时,而每次计算的结果都是一样的,这时你可能会考虑以lazy的方式来计算,就是第一次用的时候才开始具体计算,然后,在类里用一个field把这个结果保存起来,这样程序的效率就会得到提高。OK,现在你要对这个类做序列化了,这个field是类的一部分,但保存它并没有什么太大的意义,即便反序列化之后再用到,无非就是再算一次就可以了。你决定不对这个field进行序列化,这时就是transient起作用的时候了,有了它,序列化时就不会把它夜写到流里。当然,反序列化时,也没有它什么事