什么叫做对象的序列化?

第一种回答:序列化(ObjectInputStream)即将一个完整的对象拆成碎片按照序列,一个一个往文件里写的过程就叫做序列化。

  反序列化(ObjectOutputStream)即将碎片一个一个组合成一个完整的对象。

----------------------

第二种回答:

序列化就是将对象(数据)转为字节流存储在硬盘中,实现持久化,(

对象序列化过程可以分为两步:
第一: 将对象转换为字节数组
第二: 将字节数组存储到磁盘

)或者也可以通过网络发送给任何其他程序(做到创建的字节流是与平台无关的,在一个平台上序列化的对象可以在不同的平台上反序列化。)

代码实现:

python 对象的序列化与反序列化 对象序列化和反序列化_反序列化

 

反序列化就是将字节流转为对象(创建对象)的过程也可以说字节序列转换为内存中的对象

代码实现:可以是文件中的,也可以是网络传输过来的

python 对象的序列化与反序列化 对象序列化和反序列化_反序列化_02

 

序列化的作用:因为类的对象会随着程序的终止而被垃圾收集器销毁。想要要在不重新创建对象的情况下调用该类,则就需要序列化。

说完序列化作用,那么如何使Java类可序列化?

答:通过实现java.io.Serializable接口,可以在java类中启用可序列化。它是一个标记接口,意味着它不包含任何方法或字段,仅用于标识可序列化的语义。

什么是serialVersionUID?

答:SerialVersionUID是一个标识符,当它通常使用对象的哈希码序列化时会标记在对象上。我们可以通过Java中serialver工具找到该对象的serialVersionUID。

语法:serialver classname,SerialVersionUID用于对象的版本控制。当您添加或修改类中的任何字段时,已经序列化的类将无法恢复,因为serialVersionUID已为新类生成与旧的序列化对象将不同。Java序列化过程依赖于正确的serialVersionUID恢复序列化对象的状态,并在serialVersionUID不匹配时抛出java.io.InvalidClassException 异常。