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