java中什么是对象流_java 对象流

本文详细介绍了Java中的对象流,包括对象序列化和反序列化的过程,以及为什么需要序列化。对象序列化是将Java对象转换为字节序列,以便保存到磁盘或在网络上传输。为了实现序列化,类必须实现Serializable接口。文章通过示例展示了如何使用ObjectOutputStream和ObjectInputStream进行序列化和反序列化操作。此外,还讨论了序列化的一些注意事项,如静态和transient变量不会被序列化,以及如何处理序列化版本不兼容的问题。
摘要由CSDN通过智能技术生成

对象流

对象序列化 (Serialization)

ObjectOutputStream  ->序列化->写对象,将对象以“二进

制/字节”的形式写到(文件)

ObjectInputStream  ->反序列化 ->读对象

将 Java 对象转换成字节序列(IO 字节流)

对象反序列化 (DeSerialization)

从字节序列中恢复 Java 对象

为什么序列化

序列化以后的对象可以保存到磁盘上,也可以在网络上传输,

使得不同的计算机可以共享对象.(序列化的字节序列是平

台无关的)

对象序列化的条件

只有实现了 Serializable 接口的类的对象才可以被序列化。

Serializable 接口中没有任何的方法,实现该接口的类不需要

实现额外的方法。

如果对象的属性是对象,属性对应类也必须实现 Serializable

接口

如何实现序列化

创建 ObjectOutputStream 对象

调用 writeObject()输出对象

如何实现反序列化

创建 ObjectInputStream 对象

调用 readObject()读取对象

写个小例子说明一下

因为是对象流,肯定要用到对象,先写创建个Person类,包含姓名,年龄属性,实现get() set() toString() 有参和无参构造方法,最重要的是Person类要实现Serializable接口

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 importjava.io.Serializable;2

3 public class Person implements Serializable {//具备一个能力,可序列化与反序列化的能力

4 privateString name;5 private intage;6 publicPerson() {7 super();8 }9 public Person(String name, intage) {10 super();11 this.name =name;12 this.age =age;13 }14 @Override15 publicString toString() {16 return "Person [name=" + name + ", age=" + age + "]";17 }18 publicString getName() {19 returnname;20 }21 public voidsetName(String name) {22 this.name =name;23 }24 public

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值