`
微Smile
  • 浏览: 35313 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

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

    博客分类:
  • java
 
阅读更多

ObjectOutputStream是对象序列化的类

 

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

 

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

 

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

 

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

 

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

 

 

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics