JAVA-transient 关键字
2017-11-29 19:14
330 查看
为什么要有transient关键字
在Java中,
transient修饰的变量不会被序列化,即这些变量并不是序列化对象的一部分。
下面看个小例子:
class GalleryImage implements Serializable { private Image image; //缩略图对象 private transient Image thumbnailImage; private void generateThumbnail() { // 生成缩略图 } //反序列化 private void readObject(ObjectInputStream inputStream) throws IOException, ClassNotFoundException { inputStream.defaultReadObject(); generateThumbnail(); } }
当GalleryImage对象序列化时,只有源图片image会发生序列化,缩略图thumbnailImage并不会序列化,这样可以节省对象占用空间(不一定恰当,这里只是提供个例子供大家理解为什么需要transient关键字)。
readObject反序列化方法恢复序列化之前的状态,方法体内调用生成缩略图方法来恢复缩略图对象。
相关文章推荐
- Java中的transient关键字
- Java transient关键字使用小记
- Java transient关键字
- Java transient关键字
- Java中对象的串行化(Serialization)和transient关键字
- Java中的transient关键字
- Java关键字:transient,strictfp和volatile简介
- Java笔记:transient关键字
- Java关键字transient
- Java transient关键字使用小记
- Java transient关键字使用小结及一些需要注意的细节
- Java中的transient、volatile、strictfp关键字使用
- Java关键字之native,strictfp,transient,volatile
- Java中关于volatile和transient这两个关键字
- 浅谈Java修饰关键字 transient和volatile
- Java中对象的串行化(Serialization)和transient关键字
- java关键字Transient
- Java中的transient、volatile、strictfp关键字使用
- Java关键字transient和volatile小结(转)
- Java transient关键字