在Java中提供了将一个对象以字节流的形式保存到persistence介质以及从保存的字节流还原一个对象的方法:序列化与反序列化。
这项技术主要应用于RMI(对象作为参数远程传递及返回)和JavaBeans中。
Java中还提供了XMLEncoder和XMDecoder类来将JavaBeans对象序列化到XML文件,但是此种方法有诸多不便对Java类有很多限制(要满足get/set方法等等,否则可能丢失该属性值)。一个很强大的开源工具XStream,也能够将对象保存到一个XML文件,并能从中恢复而且没有那么多限制。将XML作为一种进行对象传递的公共数据格式实现跨平台的进程通信。序列化和反序列化机制的强大在于能够自动处理序列化对象之间的复杂关系(对象之间的相互引用,形成了复杂的对象网,因此要保证这种关系准确无误的存储起来。)。通过反序列化获取对象的方式可以达到深度克隆对象一样的效果,当然在性能上肯定有较大损失。