您的位置:首页 > 编程语言 > Java开发

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 序列化