ObjectOutputStream是对象序列化的类
确切的说应该是对象的序列化,一般程序在运行时,产生对象,这些对象
随着程序的停止运行而消失,但如果我们想把某些对象(因为是对象,所以
有各自不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,
可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些
保存下来的对象。这种情况下就要用到对象的序列化
假如有个很细的管子,一块肉和一本书,你想把肉和书从管子的一边传到另一边。
1,传肉的话要把肉切碎了传,到管子的另一边就成肉馅了。这个是不可被序列化的结果。
2,传书的话可以把书一页一页的撕下来卷成纸筒传过去,都传完之后按照页数排列好订在一起。这个是可被序列化的结果。
序列化,就是将内存中的对象保存到磁盘上 或者 在IO流中传输。
序列化一般用于网络传输。因为网络传输不是对象放进方法里,网络传输只能通过字节流,不能直接传输对象,对象被从一段传输到另外一端,然后进行反序列化,还原成发送端的状态
序列化就像是给对象编了个号,对应的反序列化就是根据这个编号还原对象。主要用于不同机器间传送或存到硬盘或数据库中。 反序列化就是根据serialVersionUID来还原对象,这也是为什么serialVersionUID为什么那么长,主要是为了保持唯一性。 如果没有序列化,你想想另外一台机器怎么还原呢
之所以需要对象序列化的目的,是因为有时候对象需要在网络上传输,传输的时候需要这种序列化处理,从服务器硬盘上把序列化的对象取出,然后通过网络传到客户端,再由客户端把序列化的对象读入内存,执行相应的处理