/

对象持久化与序列化

持久化是将程序数据在持久状态和瞬时状态间转换的机制。序列化就是将对象或者数据结构转化成特定的格式,使其可在网络中传输,或者可存储在内存或者文件中。

什么是持久化(Persistence)

  1. 持久化是将程序数据在持久状态和瞬时状态间转换的机制。
  2. 狭义的理解:持久化仅仅指把域对象永久保存到数据库中。
  3. 广义的理解:持久化包括和数据库相关的各种操作(持久化就是将有用的数据以某种技术保存起来,将来可以再次取出来应用,数据库技术,将内存数据一文件的形式保存在永久介质中(磁盘等)都是持久化的例子)。

为什么要持久化

  1. 通过持久化技术可以减少访问数据库数据次数,增加应用程序执行速度。
  2. 代码重用性高,能够完成大部分数据库操作。
  3. 松散耦合,使持久化不依赖于底层数据库和上层业务逻辑实现,更换数据库时只需修改配置文件而不用修改代码。

什么是序列化(Serialization)

序列化和持久化很相似,有些人甚至混为一谈,其实还是有区别的,序列化是为了解决对象的传输问题,传输可以在线程之间、进程之间、内存外存之间、主机之间进行。之所以在这里提到序列化,是因为我们可以利用序列化来辅助持久化,可以说凡是可以持久化的对象都可以序列化,因为序列化相对容易一些(也不是很容易),所以主流的软件基础设施,比如 .net 和 java,已经把序列化的框架完成了。

  1. 序列化就是将对象或者数据结构转化成特定的格式,使其可在网络中传输,或者可存储在内存或者文件中。
  2. 反序列化则是相反的操作,将对象从序列化数据中还原出来。
  3. 对象序列化后的数据格式可以是二进制,可以是 XML,也可以是 JSON 等任何格式。
  4. 对象/数据序列化的重点在于数据的交换和传输,例如在远程调用技术(如 EJB,XML-RPC,Web Service),或者在 GUI 控件开发(JavaBean)等等。

Reference: