序列化与反序列化的定义

序列化是将对象转换为可传输格式的过程。
是一种数据的持久化手段。一般广泛应用 于网络传输,RMI 和 RPC 等场景中。
反序列化是序列化的逆操作。 序列化是将对象的状态信息转换为可存储或传输的形式的过程。
一般是以字节码或 XML 格式传输。而字节码或 XML 编码格式可以还原为完全相等的对象。这个相反的过程 称为反序列化

Java 对象的序列化与反序列化

在 Java 中,我们可以通过多种方式来创建对象,并且只要对象没有被回收我们都可以复用该对象。但是,我们创建出来的这些 Java 对象都是存在于 ** JVM 的堆内存**  中的。只有 JVM 处于运行状态的时候,这些对象才可能存在。一旦 JVM 停止运行,这些对象的状态 也就随之而丢失了。
** 但是在真实的应用场景中,我们需要将这些对象持久化下来,并且能够在需要的时候把 对象重新读取出来** 。Java 的对象序列化可以帮助我们实现该功能。
对象序列化机制(object serialization)是 Java 语言内建的一种对象持久化方式, 通过对象序列化, 可以把对象的状态保存为字节数组 ,并且可以在有需要的时候将这个字节数组通过反序列化的方式再转换成对象。
对象序列化可以很容易的在 JVM 中的活动对象和 字节数组(流)之间进行转换。 在 Java 中,对象的序列化与反序列化被广泛应用到 RMI(远程方法调用)及网络传输中