用ObjectOutputStream流传递对象遇到的问题

本文深入探讨了对象序列化的概念,解释了其在内存对象保存与网络传输中的重要性。通过实例说明,清晰地阐述了如何将对象转换为可传输的数据,并在接收端还原对象状态,强调了序列化在不同机器间数据交换中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ObjectOutputStream是对象序列化的类

 

确切的说应该是对象的序列化,一般程序在运行时,产生对象,这些对象
随着程序的停止运行而消失,但如果我们想把某些对象(因为是对象,所以
有各自不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,
可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些
保存下来的对象。这种情况下就要用到对象的序列化

 

假如有个很细的管子,一块肉和一本书,你想把肉和书从管子的一边传到另一边。
1,传肉的话要把肉切碎了传,到管子的另一边就成肉馅了。这个是不可被序列化的结果。
2,传书的话可以把书一页一页的撕下来卷成纸筒传过去,都传完之后按照页数排列好订在一起。这个是可被序列化的结果。

 

序列化,就是将内存中的对象保存到磁盘上 或者 在IO流中传输。

 

序列化一般用于网络传输。因为网络传输不是对象放进方法里,网络传输只能通过字节流,不能直接传输对象,对象被从一段传输到另外一端,然后进行反序列化,还原成发送端的状态

 

序列化就像是给对象编了个号,对应的反序列化就是根据这个编号还原对象。主要用于不同机器间传送或存到硬盘或数据库中。 反序列化就是根据serialVersionUID来还原对象,这也是为什么serialVersionUID为什么那么长,主要是为了保持唯一性。 如果没有序列化,你想想另外一台机器怎么还原呢

 

 

之所以需要对象序列化的目的,是因为有时候对象需要在网络上传输,传输的时候需要这种序列化处理,从服务器硬盘上把序列化的对象取出,然后通过网络传到客户端,再由客户端把序列化的对象读入内存,执行相应的处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值