序列化与反序列化和transient瞬态关键字

本文介绍了Java中的对象序列化和反序列化机制,包括使用ObjectOutputStream和ObjectInputStream进行操作。序列化时,对象必须实现Serializable接口,否则会抛出NotSerializableException。transient关键字用于标记不希望序列化的属性。反序列化时,若class文件修改,可能导致InvalidClassException。serialVersionUID用于确保类版本匹配。
摘要由CSDN通过智能技术生成

1.概述

Java提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。

反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据、对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象。

序列化:对象转换为字节 ObjectOutputStream

反序列化:字节重构为对象 ObjectInputStream

2.ObjectOutputStream类

java.io.ObjectOutputStream类继承自OutputStream,是对象的序列化流,把对象以流的方式写入到文件中保存。

构造方法(红色为常用)创建写入指定OutputStream的ObjectOutputStream。

构造方法摘要
protected ObjectOutputStream()
          为完全重新实现 ObjectOutputStream 的子类提供一种方法,让它不必分配仅由 ObjectOutputStream 的实现使用的私有数据。
  ObjectOutputStream(OutputStream out)
          创建写入指定 OutputStream 的 ObjectOutputStream。

 参数:OutputStream out:字节输出流

特有成员方法:将指定的对象写入ObjectOutputStream。

void
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值